This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 5b51c2addc7808c0d1c524c1a84eee41a65ae037
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Aug 15 16:16:39 2019 +0100

    Back-port additions and corrections to the Spanish i18n messages
---
 java/javax/servlet/LocalStrings_es.properties      |   2 +-
 java/javax/servlet/http/LocalStrings_es.properties |   5 +-
 .../catalina/connector/LocalStrings_es.properties  |   4 +
 .../catalina/core/LocalStrings_es.properties       | 148 +++++++++++----------
 .../catalina/deploy}/LocalStrings_es.properties    |  11 +-
 .../catalina/ha/deploy/LocalStrings_es.properties  |  29 ++++
 .../catalina/ha/session/LocalStrings_es.properties |  46 ++++---
 .../catalina/ha/tcp/LocalStrings_es.properties     |  20 +--
 .../catalina/loader/LocalStrings_es.properties     |  18 +--
 .../catalina/manager/LocalStrings_es.properties    |  71 +++++-----
 .../manager/host/LocalStrings_es.properties        |  36 ++---
 .../mbeans}/LocalStrings_es.properties             |   2 +-
 .../catalina/realm/LocalStrings_es.properties      |  79 +++++------
 .../catalina/session/LocalStrings_es.properties    |  52 ++++----
 .../catalina/startup/LocalStrings_es.properties    |  89 +++++++------
 .../catalina/users/LocalStrings_es.properties      |   7 +-
 .../catalina/util/LocalStrings_es.properties       |  17 ++-
 .../catalina/valves/LocalStrings_es.properties     |  29 +++-
 java/org/apache/coyote/LocalStrings_es.properties  |   7 +
 .../apache/coyote/ajp/LocalStrings_es.properties   |   4 +-
 .../coyote/http11/LocalStrings_es.properties       |   7 +-
 .../http11/filters}/LocalStrings_es.properties     |  11 +-
 .../http11/upgrade}/LocalStrings_es.properties     |   3 +-
 .../jasper/resources/LocalStrings_es.properties    |   2 +-
 .../{threads/res => }/LocalStrings_es.properties   |   5 +-
 .../tomcat/util/buf/LocalStrings_es.properties     |   2 +
 .../util/compat}/LocalStrings_es.properties        |   2 +-
 .../tomcat/util/http/LocalStrings_es.properties    |  23 ++++
 .../util/http/parser}/LocalStrings_es.properties   |  13 +-
 .../tomcat/util/scan}/LocalStrings_es.properties   |  12 +-
 .../util/threads/res/LocalStrings_es.properties    |   2 +-
 .../tomcat/websocket/LocalStrings_es.properties    |  44 ++++++
 .../websocket/server}/LocalStrings_es.properties   |  10 +-
 webapps/docs/changelog.xml                         |   4 +
 .../WEB-INF/classes/LocalStrings_es.properties     |   2 +-
 35 files changed, 493 insertions(+), 325 deletions(-)

diff --git a/java/javax/servlet/LocalStrings_es.properties 
b/java/javax/servlet/LocalStrings_es.properties
index 604e94c..e5348f5 100644
--- a/java/javax/servlet/LocalStrings_es.properties
+++ b/java/javax/servlet/LocalStrings_es.properties
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-err.not_iso8859_1=No es un carácter ISO 8859-1: {0}
+err.not_iso8859_1=No es un carácter ISO 8859-1: [{0}]
 
 httpConstraintElement.invalidRolesDeny=No se pueden especificar Roles al 
utilizar DENY (DENEGAR)
 
diff --git a/java/javax/servlet/http/LocalStrings_es.properties 
b/java/javax/servlet/http/LocalStrings_es.properties
index 089e7d1..b673735 100644
--- a/java/javax/servlet/http/LocalStrings_es.properties
+++ b/java/javax/servlet/http/LocalStrings_es.properties
@@ -14,12 +14,13 @@
 # limitations under the License.
 
 err.cookie_name_blank=El nombre del Cookie no puede ser nulo o de longitud cero
-err.cookie_name_is_token=El nombre de Cookie {0} es una palabra reservada
+err.cookie_name_is_token=El nombre de Cookie [{0}] es una palabra reservada
 err.io.negativelength=Longitud Negativa en el metodo write
+err.io.nullArray=Se pasó un valor Null para el arreglo byte en el método de 
escritura
 err.io.short_read=Lectura Corta
 
 http.method_delete_not_supported=El Metodo HTTP DELETE no es soportado por 
esta URL
 http.method_get_not_supported=El Metodo HTTP GET no está soportado por esta URL
-http.method_not_implemented=El Metodo {0} no esta implementado por este 
servlet para esta URI
+http.method_not_implemented=El Metodo [{0}] no esta implementado por este 
servlet para esta URI
 http.method_post_not_supported=El Metodo HTTP POST no está soportado por esta 
URL
 http.method_put_not_supported=El Metodo HTTP PUT no está soportado por esta URL
diff --git a/java/org/apache/catalina/connector/LocalStrings_es.properties 
b/java/org/apache/catalina/connector/LocalStrings_es.properties
index 872cc69..8983ec1 100644
--- a/java/org/apache/catalina/connector/LocalStrings_es.properties
+++ b/java/org/apache/catalina/connector/LocalStrings_es.properties
@@ -22,6 +22,7 @@ coyoteAdapter.parsePathParam=No puedo analizar los parámetros 
de ruta mediante
 
 coyoteConnector.MapperRegistration=Mapeador de registro: {0}
 coyoteConnector.cannotRegisterProtocol=No puedo registrar MBean para el 
Protocolo
+coyoteConnector.invalidPort=El conector no puede inciar debido a que el valor 
del puerto especificado [{0}] no es válido
 coyoteConnector.parseBodyMethodNoTrace=El método TRACE NO DEBE DE incluir una 
entidad (vea RFC 2616 Sección 9.6)
 coyoteConnector.protocolHandlerDestroyFailed=Falló la destrucción del 
manejador de protocolo
 coyoteConnector.protocolHandlerInitializationFailed=Falló la inicialización 
del manejador de protocolo
@@ -29,6 +30,7 @@ coyoteConnector.protocolHandlerInstantiationFailed=Falló la 
instanciación del
 coyoteConnector.protocolHandlerPauseFailed=Ha fallado la pausa del manejador 
de protocolo
 coyoteConnector.protocolHandlerResumeFailed=Ha fallado el rearranque del 
manejador de protocolo
 coyoteConnector.protocolHandlerStartFailed=Falló el arranque del manejador de 
protocolo
+coyoteConnector.protocolHandlerStopFailed=Ocurrió un fallo al detener el 
manejador del protocolo
 coyoteConnector.protocolRegistrationFailed=Falló el registro de JMX
 coyoteConnector.protocolUnregistrationFailed=Ha fallado la parada del 
manejador de protocolo
 
@@ -38,11 +40,13 @@ coyoteRequest.authenticate.ise=No puedo llamar a 
authenticate() tras haberse aco
 coyoteRequest.chunkedPostTooLarge=No se han analizado los parámetros porque la 
medida de los datos enviados meiante "post" era demasiado grande. Debido a que 
este requerimiento es una parte del original, no puede ser procesado. Utiliza 
el atributo "maxPostSize" del conector para resolver esta situación, en caso de 
que la aplicación deba de aceptar POSTs mayores.
 coyoteRequest.getInputStream.ise=getReader() ya ha sido llamado para este 
requerimiento
 coyoteRequest.getReader.ise=getInputStream() ya ha sido llamado para este 
requerimiento
+coyoteRequest.gssLifetimeFail=Fallo al obtener el tiempo de vida restante para 
el usuario principal [{0}]\n
 coyoteRequest.listenerStart=Excepción enviando evento inicializado de contexto 
a instancia de escuchador de clase {0}
 coyoteRequest.listenerStop=Excepción enviando evento destruído de contexto a 
instancia de escuchador de clase {0}
 coyoteRequest.noLoginConfig=No se ha configurado mecanismo de autenticación 
para este contexto
 coyoteRequest.parseParameters=Excepción lanzada al procesar parámetros POST
 coyoteRequest.postTooLarge=No se analizaron los parámetros porque la medida de 
los datos enviados era demasiado grande. Usa el atributo maxPostSize del 
conector para resolver esto en caso de que la aplicación debiera de aceptar 
POSTs más grandes.
+coyoteRequest.sendfileNotCanonical=Incapaz de determinar el nombre canónico 
del archivo  [{0}] especificado para ser usado con sendfile
 coyoteRequest.sessionCreateCommitted=No puedo crear una sesión después de 
llevar a cabo la respueta
 coyoteRequest.sessionEndAccessFail=Excepción disparada acabando acceso a 
sesión mientras se reciclaba el requerimiento
 coyoteRequest.setAttribute.namenull=No pudeo llamar a setAttribute con un 
nombre nulo
diff --git a/java/org/apache/catalina/core/LocalStrings_es.properties 
b/java/org/apache/catalina/core/LocalStrings_es.properties
index 13dcc69..ac8c173 100644
--- a/java/org/apache/catalina/core/LocalStrings_es.properties
+++ b/java/org/apache/catalina/core/LocalStrings_es.properties
@@ -13,33 +13,34 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-applicationContext.addFilter.ise=No se pueden añadir filtros al contexto {0} 
ya que éste ha sido inicializado
+applicationContext.addFilter.ise=No se pueden añadir filtros al contexto [{0}] 
ya que éste ha sido inicializado
 applicationContext.addListener.iae.cnfe=No puedo crear una instancia del tipo 
[{0}]
 applicationContext.addListener.iae.sclNotAllowed=Una vez que el primer 
ServletContextListener ha sido llamado, no se pueden añadir más 
ServletContextListeners.
 applicationContext.addListener.iae.wrongType=El tipo especificado [{0}] no es 
uno de los tipos de escuchador esperados
-applicationContext.addListener.ise=No se pueden añadir escuchadores al 
contexto {0}, una vez que ha sido inicializado.
-applicationContext.addRole.ise=No se pueden añadir roles al contexto {0}, una 
vez que ha sido inicializado.
-applicationContext.addServlet.ise=No se pueden añadir servlets al contexto 
{0}, una vez que ha sido inicializado.
+applicationContext.addListener.ise=No se pueden añadir escuchadores al 
contexto [{0}], una vez que ha sido inicializado.
+applicationContext.addRole.ise=No se pueden añadir roles al contexto [{0}], 
una vez que ha sido inicializado.
+applicationContext.addServlet.ise=No se pueden añadir servlets al contexto 
[{0}], una vez que ha sido inicializado.
 applicationContext.addSessionCookieConfig.ise=No se puede poner la 
configuración de Cookie de Sesión para el contexto {0}, una vez que éste ha 
sido inicializado.
 applicationContext.attributeEvent=Excepción lanzada por escuchador de eventos 
de atributos
+applicationContext.invalidServletName=Incapaz de añadir la definición servlet 
devido a que el nombre servlet no es válido [{0}].
 applicationContext.lookup.error=No pude localizar el recurso [{0}] en el 
contexto [{1}]
 applicationContext.mapping.error=Error durante mapeo
-applicationContext.requestDispatcher.iae=La Trayectoria {0} no comienza con 
carácter "/"
-applicationContext.resourcePaths.iae=La Trayectoria {0} no comienza con 
carácter "/"
+applicationContext.requestDispatcher.iae=La Trayectoria [{0}] no comienza con 
carácter "/"
+applicationContext.resourcePaths.iae=La Trayectoria [{0}] no comienza con 
carácter "/"
 applicationContext.role.iae=Un rol individual que se ha de declarar para el 
contexto [{0}] no puede ser nulo o cadena vacía
 applicationContext.roles.iae=Un arreglo de roles que se ha de declarar para el 
contexto [{0}] no puede ser nulo o cadena vacía
 applicationContext.setAttribute.namenull=El nombre no puede ser nulo
-applicationContext.setSessionTracking.iae.invalid=El modo de seguimiento de 
sesión {0} requerido para el contexto {1} no está soportado por este contexto
-applicationContext.setSessionTracking.iae.ssl=Los modos de seguimiento de 
sesión requeridos para el contexto {0}, incluyó SSL y al menos otro modo. SSL 
no se puede configurar con otros modos.
-applicationContext.setSessionTracking.ise=No se pueden poner los modos de 
seguimiento de sesión para el contexto {0} mientras el contexto se está 
ejecutando.
+applicationContext.setSessionTracking.iae.invalid=El modo de seguimiento de 
sesión [{0}] requerido para el contexto [{1}] no está soportado por este 
contexto
+applicationContext.setSessionTracking.iae.ssl=Los modos de seguimiento de 
sesión requeridos para el contexto [{0}], incluyó SSL y al menos otro modo. SSL 
no se puede configurar con otros modos.
+applicationContext.setSessionTracking.ise=No se pueden poner los modos de 
seguimiento de sesión para el contexto [{0}] mientras el contexto se está 
ejecutando.
 
-applicationDispatcher.allocateException=Excepción de reserva de espacio para 
servlet {0}
-applicationDispatcher.deallocateException=Excepción de recuperación de espacio 
para servlet {0}
+applicationDispatcher.allocateException=Excepción de reserva de espacio para 
servlet [{0}]
+applicationDispatcher.deallocateException=Excepción de recuperación de espacio 
para servlet [{0}]
 applicationDispatcher.forward.ise=No puedo reenviar después de que la 
respuesta se haya llevado a cabo.
 applicationDispatcher.forward.throw=El recurso reenviado lanzó un excepción
 applicationDispatcher.include.throw=El recurso incluído lanzó una excepción
-applicationDispatcher.isUnavailable=El Servlet {0} no está disponible en este 
momento
-applicationDispatcher.serviceException=El Servlet.service() para servlet {0} 
lanzó una excepción
+applicationDispatcher.isUnavailable=El Servlet [{0}] no está disponible en 
este momento
+applicationDispatcher.serviceException=El Servlet.service() para servlet [{0}] 
lanzó una excepción
 applicationDispatcher.specViolation.request=SevletRequest original o 
ServletRequest original arropado no pasó a RequestDispatcher en violación de 
SRV.8.2 y SRV.14.2.5.1
 applicationDispatcher.specViolation.response=SevletResponse original o 
ServletResponse original arropado no pasó a RequestDispatcher en violación de 
SRV.8.2 y SRV.14.2.5.1
 
@@ -60,28 +61,34 @@ applicationServletRegistration.setServletSecurity.iae=Se ha 
especificado restric
 applicationServletRegistration.setServletSecurity.ise=No se pueden añadir 
restricciones de seguridad al servlet [{0}] desplegado en el contexto con el 
nombre [{1}] ya que el contexto ya ha sido inicializado.
 
 aprListener.aprDestroy=No pude apagar la biblioteca nativa de Apache Tomcat
-aprListener.aprInit=La biblioteca nativa de Apache Tomcat basada en ARP que 
permite un rendimiento óptimo en entornos de desarrollo no ha sido hallada en 
java.library.path: {0}
+aprListener.aprInit=La biblioteca nativa de Apache Tomcat basada en ARP que 
permite un rendimiento óptimo en entornos de desarrollo no ha sido hallada en 
java.library.path: [{0}]
 aprListener.flags=Capacidades APR: IPv6 [{0}], enviar fichero [{1}], aceptar 
filtros [{2}], aleatorio [{3}].
-aprListener.initializedOpenSSL=OpenSSL inicializado correctamente ({0})
+aprListener.initializedOpenSSL=OpenSSL inicializado correctamente [{0}]
+aprListener.initializingFIPS=Inicializando modo FIPS...
 aprListener.sslInit=No pude inicializar el SSLEngine (Motor SSL)
-aprListener.tcnInvalid=Se encuentra instalada una versión incompatible {0} de 
la biblioteca nativa APR de Apache Tomcat, mientras que Tomcat necesita la 
versión {1}
-aprListener.tcnValid=Cargada la biblioteca nativa APR de Apache Tomcat {0} con 
la versi�n APR {1}.
-aprListener.tcnVersion=Se encuentra instalada una versión muy vieja {0} de la 
biblioteca nativa APR de Apache Tomcat, mientras que Tomcat recomienda una 
versión mayor de {1}
+aprListener.tcnInvalid=Se encuentra instalada una versión incompatible [{0}] 
de la biblioteca nativa APR de Apache Tomcat, mientras que Tomcat necesita la 
versión [{1}]
+aprListener.tcnValid=Cargada la biblioteca nativa APR de Apache Tomcat [{0}] 
con la versión APR [{1}].
+aprListener.tcnVersion=Se encuentra instalada una versión muy vieja [{0}] de 
la biblioteca nativa APR de Apache Tomcat, mientras que Tomcat recomienda una 
versión mayor de [{1}]
+aprListener.tooLateForFIPSMode=No se pudo fijar  setFIPSMode: SSL ya ha sido 
inicializado
 
 asyncContextImpl.requestEnded=El requerimiento asociado con AsyncContext ya ha 
completado su procesamiento.
 
 containerBase.alreadyStarted=Ya ha sido arrancado el Contenedor {0}
-containerBase.backgroundProcess.cluster=Excepción al procesar clúster {0} de 
proceso en segundo plano
+containerBase.backgroundProcess.cluster=Excepción al procesar clúster [{0}] de 
proceso en segundo plano
 containerBase.backgroundProcess.loader=Excepción al procesar cargador {0} de 
proceso en segundo plano
 containerBase.backgroundProcess.manager=Excepción al procesar gestor {0} de 
proceso en segundo plano
-containerBase.backgroundProcess.realm=Excepción al procesar reino {0} de 
proceso en segundo plano
-containerBase.backgroundProcess.valve=Excepción al procesar válvula {0} de 
proceso en segundo plano
+containerBase.backgroundProcess.realm=Excepción al procesar reino [{0}] de 
proceso en segundo plano
+containerBase.backgroundProcess.unexpectedThreadDeath=Muerte inesperada de un 
hilo en segudo plano [{0}]\n
+containerBase.backgroundProcess.valve=Excepción al procesar válvula [{0}] de 
proceso en segundo plano
 containerBase.notConfigured=No se ha configurado Válvula básica
 containerBase.notStarted=No se ha arrancado el Contenedor {0}
 
+defaultInstanceManager.invalidInjection=Método inválido para el recurso de 
inserción de anotación
 defaultInstanceManager.privilegedFilter=El filtro de clase {0} es privilegiado 
y no puede ser cargado mediante esta apliación web
 defaultInstanceManager.privilegedServlet=El Servlet de clase {0} es 
privilegiado y no puede ser cargado mediante esta aplicación
+defaultInstanceManager.restrictedContainerServlet=El acceso a la clase [{0}] 
esta prohibido. Esta es una clase restringida  ( implementa la interface 
ContainerServlet ). Una applicación web debe ser configurada como privilegiada 
para ser capaz de cargarla
 defaultInstanceManager.restrictedFiltersResource=No se ha hallado el fichero 
de propiedades restringidas de filtros
+defaultInstanceManager.restrictedListenersResource=No se ha hallado el fichero 
de propiedades restringidas de escuchadores
 defaultInstanceManager.restrictedListenersResources=No se ha hallado el 
fichero de propiedades restringidas de escuchadores
 defaultInstanceManager.restrictedServletsResource=No se ha hallado el fichero 
de propiedades restringidas de servlets
 
@@ -95,40 +102,42 @@ jreLeakListener.keepAliveFail=No pude disparar la creación 
de la clase sun.net.
 jreLeakListener.ldapPoolManagerFail=No pude disparar la creación de la clase 
com.sun.jndi.ldap.LdapPoolManager durante el arranque de Tomcat para prevenir 
posibles fallos de memoria. Esto es lo que se espera si las JVMs no son Sun.
 jreLeakListener.xmlParseFail=Error mientras intentaba prevenir fallos de 
memoria durante el análisis XML
 
-naming.bindFailed=No pude cambiar (bind) objeto: {0}
-naming.invalidEnvEntryType=La entrada de Entorno {0} tiene un tipo inválido
-naming.invalidEnvEntryValue=La entrada de Entorno {0} tiene un valor inválido
-naming.jmxRegistrationFailed=No pude registrar en JMX: {0}
-naming.namingContextCreationFailed=Falló la creación del contexto de nombres 
(naming): {0}
-naming.unbindFailed=No pude descambiar (unbind) objecto: {0}
+naming.addEnvEntry=Adicionando entrada de ambiente [{0}]\n
+naming.bindFailed=No pude cambiar (bind) objeto: [{0}]
+naming.invalidEnvEntryType=La entrada de Entorno [{0}] tiene un tipo inválido
+naming.invalidEnvEntryValue=La entrada de Entorno [{0}] tiene un valor inválido
+naming.jmxRegistrationFailed=No pude registrar en JMX: [{0}]
+naming.namingContextCreationFailed=Falló la creación del contexto de nombres 
(naming): [{0}]
+naming.unbindFailed=No pude descambiar (unbind) objecto: [{0}]
 naming.wsdlFailed=No pude hallar fichero wsdl: {0}
 
 standardContext.alreadyStarted=Ya se ha arrancado el Contexto
-standardContext.applicationListener=Error configurando escuchador de 
aplicación de clase {0}
+standardContext.applicationListener=Error configurando escuchador de 
aplicación de clase [{0}]
 standardContext.applicationSkipped=Se ha saltado la instalación de 
escuchadores de aplicación debido a error(es) previo(s)
 standardContext.badRequest=Trayectoria de requerimiento inválida ({0}).
 standardContext.cluster.noManager=No se ha hallado el gestor. Revisando si hay 
que usar el gestor de clúster. Clúster configurado: [{0}], Aplicación 
distribuíble: [{1}]
 standardContext.crlfinurl=El modelo URL "{0}" contiene un CR o LR y por ello 
nunca coincidirá.
-standardContext.duplicateListener=El escuchador "{0}" ya está configurado para 
este contexto. La definición duplicada ha sido ignorada.
-standardContext.errorPage.error=La localización de la página de error 0} debe 
de comenzar con ''/''
+standardContext.duplicateListener=El escuchador [{0}] ya está configurado para 
este contexto. La definición duplicada ha sido ignorada.
+standardContext.errorPage.error=La localización de la página de error [{0}] 
debe de comenzar con ''/''
 standardContext.errorPage.required=ErrorPage no puede ser nulo
-standardContext.errorPage.warning=AVISO: La localización de la página de error 
{0} debe de comenzar con ''/'' en Servlet 2.4
+standardContext.errorPage.warning=AVISO: La localización de la página de error 
[{0}] debe de comenzar con ''/'' en Servlet 2.4
 standardContext.filterMap.either=El mapeo de filtro debe de especificar o un 
<url-pattern> o un <servlet-name>
-standardContext.filterMap.name=El mapeo de filtro especifica un nombre 
desconocido de filtro {0}
-standardContext.filterMap.pattern=<url-pattern> {0} inválido en mapeo de filtro
-standardContext.filterStart=Excepción arrancando filtro {0}
+standardContext.filterMap.name=El mapeo de filtro especifica un nombre 
desconocido de filtro [{0}]
+standardContext.filterMap.pattern=<url-pattern> [{0}] inválido en mapeo de 
filtro
+standardContext.filterStart=Excepción arrancando filtro [{0}]
 standardContext.filterStartFailed=No pude arrancar Filtros de aplicación con 
éxito
-standardContext.invalidWrapperClass={0} no es una subclase de StandardWrapper
+standardContext.invalidWrapperClass=[{0}] no es una subclase de StandardWrapper
 standardContext.isUnavailable=Esta aplicación no está disponible en este 
momento
-standardContext.listenerStart=Excepción enviando evento inicializado de 
contexto a instancia de escuchador de clase {0}
+standardContext.listenerStart=Excepción al enviar evento inicializado de 
contexto a instancia de escuchador de clase [{0}]
 standardContext.listenerStartFailed=No pude arrancar Escuchadores de 
aplicación con éxito
-standardContext.listenerStop=Excepción enviando evento de contexto destruído a 
instancia de escuchador de clase {0}
-standardContext.loginConfig.errorPage=La Página de error de Formulario {0} 
debe de comenzar con ''/''
-standardContext.loginConfig.errorWarning=AVISO: La página de error de 
Formulario {0} debe de comenzar con ''/'' en Servlet 2.4
-standardContext.loginConfig.loginPage=La página de login de Formulario {0} 
debe de comenzar con ''/''
-standardContext.loginConfig.loginWarning=AVISO: La página de login de 
Formulario {0} debe de comenzar con ''/'' en Servlet 2.4
+standardContext.listenerStop=Excepción enviando evento de contexto destruído a 
instancia de escuchador de clase [{0}]
+standardContext.loginConfig.errorPage=La Página de error de Formulario [{0}] 
debe de comenzar con ''/''
+standardContext.loginConfig.errorWarning=AVISO: La página de error de 
Formulario [{0}] debe de comenzar con ''/'' en Servlet 2.4
+standardContext.loginConfig.loginPage=La página de login de Formulario [{0}] 
debe de comenzar con ''/''
+standardContext.loginConfig.loginWarning=AVISO: La página de login de 
Formulario [{0}] debe de comenzar con ''/'' en Servlet 2.4
 standardContext.loginConfig.required=LoginConfig no puede ser nula
 standardContext.manager=Configurado un gestor de la clase [{0}]
+standardContext.managerFail=El manejador de sesiones falló al iniciar
 standardContext.mappingError=Error de configuración de MAPEO para URI relativa 
{0}
 standardContext.namingResource.destroy.fail=No pude destruir recursos de viejo 
nombre
 standardContext.namingResource.init.fail=No pude inicializar recursos de nuevo 
nombre
@@ -140,19 +149,20 @@ standardContext.notWrapper=El Hijo de un Contexto debe de 
ser un Arropador (Wrap
 standardContext.parameter.duplicate=Duplicado parámetro de inicialización de 
contexto [{0}]
 standardContext.parameter.required=Es necesario poner nombre de parámetro y 
valor de parámetro
 standardContext.pathInvalid=Una ruta de contexto debe de ser o una cadena 
vacía o comenzar con "/". La ruta [{0}] no cumple con estos criterios y ha sido 
cambiada por [{1}]
+standardContext.predestroy.duplicate=Definición duplicada de método 
@PreDestroy para clase {0}]
 standardContext.reloadingCompleted=Se ha completado la recarga de este Contexto
 standardContext.reloadingFailed=Falló la recarga de este Contexto debido a 
errores previos
 standardContext.reloadingStarted=Ha comenzado la recarga de Contexto [{0}]
 standardContext.requestListener.requestDestroy=Una excepción durante el envío 
de requerimiento ha destruído un evento de ciclo de vida (lifecycle event) para 
la instancia de clase a la escucha (listener) {0}
-standardContext.requestListener.requestInit=Una excepción durante el envío de 
requerimiento ha iniciado un evento de ciclo de vida (lifecycle event) para la 
instancia de clase a la escucha (listener) {0}
+standardContext.requestListener.requestInit=Una excepción durante el envío de 
requerimiento ha iniciado un evento de ciclo de vida (lifecycle event) para la 
instancia de clase a la escucha (listener) [{0}]
 standardContext.requestListenerConfig.added=Añadida Válvula de escuchador de 
requerimiento
 standardContext.requestListenerConfig.error=Excepción añadiendo Válvula de 
escuchador de requerimiento: {0}
 standardContext.requestListenerStartFailed=No pude arrancar válvula de 
escuchador de requerimiento con exito
 standardContext.resourcesStart=Error arrancando Recursos estáticos
-standardContext.securityConstraint.mixHttpMethod=No está permitido mezclar 
<http-method> y <http-method-omission> ien la misma  colección de recursos web
-standardContext.securityConstraint.pattern=<url-pattern> {0} inválida en 
restricción de seguridad
-standardContext.servletMap.name=El mapeo de Servlet especifica un nombre de 
servlet desconocido {0}
-standardContext.servletMap.pattern=<url-pattern> {0} inválida en mapeo de 
servlet
+standardContext.securityConstraint.mixHttpMethod=No está permitido mezclar 
<http-method> y <http-method-omission> en la misma  colección de recursos web
+standardContext.securityConstraint.pattern=<url-pattern> [{0}] inválida en 
restricción de seguridad
+standardContext.servletMap.name=El mapeo de Servlet especifica un nombre de 
servlet desconocido [{0}]
+standardContext.servletMap.pattern=<url-pattern> [{0}] inválida en mapeo de 
servlet
 standardContext.startCleanup=Excepción durante la limpieza tras no poder 
arrancar
 standardContext.startFailed=Falló en arranque del Contexto [{0}] debido a 
errores previos
 standardContext.startingContext=Excepción arrancando Contexto con nombre [{0}]
@@ -164,7 +174,7 @@ standardContext.stoppingLoader=Excepción parando Cargador
 standardContext.stoppingManager=Excepción parando Gestor
 standardContext.stoppingWrapper=Excepción parando Arropador (Wrapper) para 
servlet {0}
 standardContext.urlDecode=No puedo decodificar URL de trayectoria de 
requerimiento {0}
-standardContext.urlPattern.patternWarning=AVISO: el patrón URL {0} debe de 
comenzar con ''/'' en Servlet 2.4
+standardContext.urlPattern.patternWarning=AVISO: el patrón URL [{0}] debe de 
comenzar con ''/'' en Servlet 2.4
 standardContext.urlValidate=No puedo validar trayectoria de requerimiento de 
URL decodificada {0}
 standardContext.workCreateException=No pude determinar directorio absoluto de 
trabajo a partir del directorio [{0}] y  CATALINA_HOME [{1}] para el contexto 
[{2}]
 standardContext.workCreateFail=No pude crear el directorio de trabajo [{0}] 
para el contexto [{1}]
@@ -175,7 +185,7 @@ standardContextValve.acknowledgeException=No pude reconocer 
el requerimiento con
 standardEngine.alreadyStarted=Ya ha sido arrancado el Motor
 standardEngine.jvmRouteFail=No pude poner el atributo jvmRoute del Motor para 
la propiedad del sistema
 standardEngine.mappingError=Error de configuración de MAPEO para nombre de 
servidor {0}
-standardEngine.noHost=No hay Máquina que coincida con nombre de servidor {0}
+standardEngine.noHost=No hay Máquina que coincida con nombre de servidor [{0}]
 standardEngine.noHostHeader=Requerimiento HTTP/1.1 sin Máquina: cabecera
 standardEngine.notHost=El Hijo de un Motor debe de ser un Máquina
 standardEngine.notParent=El Motor no puede tener un Contenedor padre
@@ -187,7 +197,7 @@ standardEngine.unregister.mbeans.failed=Error al destruir 
(destroy()) para fiche
 standardHost.accessBase=No puedo acceder a directorio base de documento {0}
 standardHost.alreadyStarted=Ya ha sido arrancada la Máquina
 standardHost.appBase=No existe el directorio base de aplicación {0}
-standardHost.clientAbort=El Cliente Remoto Abortó el Requerimiento, 
IOException: {0}
+standardHost.clientAbort=El Cliente Remoto Abortó el Requerimiento, 
IOException: [{0}]
 standardHost.configNotAllowed=No se permite el uso del archivo de configuración
 standardHost.configRequired=Es necesario poner la URL a archivo de 
configuración
 standardHost.docBase=Ya existe el directorio base de documento {0}
@@ -196,7 +206,7 @@ standardHost.installError=Error desplegando aplicación en 
trayectoria de contex
 standardHost.installing=Instalando aplicaciones web en trayectoria de contexto 
{0} desde URL {1}
 standardHost.installingWAR=Instalando aplicación web desde URL {0}
 standardHost.installingXML=Procesando URL de archivo de configuración de 
Contexto {0}
-standardHost.invalidErrorReportValveClass=No pude cargar clase especifiada de 
válvula de informe de error: {0}
+standardHost.invalidErrorReportValveClass=No pude cargar clase especifiada de 
válvula de informe de error: [{0}]
 standardHost.mappingError=Error de configuración de MAPEO para URI de 
requerimiento {0}
 standardHost.noContext=No se ha configurado Contexto para procesar este 
requerimiento
 standardHost.noHost=No se ha configurado Máquina para procesar este 
requerimiento
@@ -227,42 +237,42 @@ standardService.connector.stopFailed=No pude parar el 
conector [{0}]
 standardService.initialize.failed=Servicio inicializando en {0} falló
 standardService.onameFail=El nombre MBean especificado para el Servicio [{0}] 
no es válido
 standardService.register.failed=Error registrando servicio en dominio {0}
-standardService.start.name=Arrancando servicio {0}
-standardService.stop.name=Parando servicio {0}
+standardService.start.name=Arrancando servicio [{0}]
+standardService.stop.name=Parando servicio [{0}]
 
 standardThreadExecutor.onameFail=El nombre MBean especificado para el Ejecutor 
de Hilos [{0}] no es válido
 
 standardWrapper.allocate=Error reservando espacio para una instancia de servlet
-standardWrapper.allocateException=Excepción de reserva de espacio para servlet 
{0}
+standardWrapper.allocateException=Excepción de reserva de espacio para servlet 
[{0}]
 standardWrapper.containerServlet=Cargando servlet de contenedor {0}
 standardWrapper.createFilters=Excepción de creación de filtros para servlet {0}
-standardWrapper.deallocateException=Excepción de recuperación de espacio para 
servlet {0}
-standardWrapper.destroyException=Servlet.destroy() para servlet {0} lanzó 
excepción
+standardWrapper.deallocateException=Excepción de recuperación de espacio para 
servlet [{0}]
+standardWrapper.destroyException=Servlet.destroy() para servlet [{0}] lanzó 
excepción
 standardWrapper.exception0=Informe de Excepción de Tomcat
 standardWrapper.exception1=Ha tenido lugar una Excepción de Servlet
 standardWrapper.exception2=Informe de Excepción:
 standardWrapper.exception3=Causa Raíz:
-standardWrapper.initException=Servlet.init() para servlet {0} lanzó excepción
-standardWrapper.instantiate=Error instanciando clase de servlet {0}
-standardWrapper.isUnavailable=El Servlet {0} no está disponible en este momento
+standardWrapper.initException=Servlet.init() para servlet [{0}] lanzó excepción
+standardWrapper.instantiate=Error instanciando clase de servlet [{0}]
+standardWrapper.isUnavailable=El Servlet [{0}] no está disponible en este 
momento
 standardWrapper.jasperLoader=Usando cargador de clases (classloader) de Jasper 
para servlet {0}
 standardWrapper.jspFile.format=El archivo JSP {0} no comienza con carácter 
''/''
 standardWrapper.missingClass=El Arropador (Wrapper) no puede hallar clase de 
servlet {0} o una clase de la que depende
 standardWrapper.missingLoader=El Arropador (Wrapper) no puede hallar Cargador 
para servlet {0}
 standardWrapper.notChild=El contenedor de Arropador (Wrapper) no puede tener 
contenedores hijo
-standardWrapper.notClass=No se ha especificado clase de servlet para servlet 
{0}
+standardWrapper.notClass=No se ha especificado clase de servlet para servlet 
[{0}]
 standardWrapper.notContext=El contenedor padre para un Arropador (Wrapper) 
debe de ser un Contexto
-standardWrapper.notFound=No está disponible el Servlet {0}
-standardWrapper.notServlet=La Clase {0} no es un Servlet
-standardWrapper.releaseFilters=Excepción de Liberación de filtros para servlet 
{0}
-standardWrapper.serviceException=Servlet.service() para servlet {0} lanzó 
excepción
+standardWrapper.notFound=No está disponible el Servlet [{0}]
+standardWrapper.notServlet=La Clase [{0}] no es un Servlet
+standardWrapper.releaseFilters=Excepción de Liberación de filtros para servlet 
[{0}]
+standardWrapper.serviceException=Servlet.service() para servlet [{0}] lanzó 
excepción
 standardWrapper.serviceExceptionRoot=El Servlet.service() para el servlet 
[{0}] en el contexto con ruta [{1}] lanzó la excepción [{2}] con causa raíz
 standardWrapper.statusHeader=HTTP Estado {0} - {1}
 standardWrapper.statusTitle=Informe de Error de Tomcat
-standardWrapper.unavailable=Marcando el servlet {0} como no disponible
-standardWrapper.unloadException=El Servlet {0} lanzó excepción unload()
-standardWrapper.unloading=No puedo reservar espacio para servlet {0} porque 
está siendo descargado
-standardWrapper.waiting=Esperando por {0} instancia(s) para recuperar su 
espacio reservado
+standardWrapper.unavailable=Marcando el servlet [{0}] como no disponible
+standardWrapper.unloadException=El Servlet [{0}] lanzó excepción unload()
+standardWrapper.unloading=No se puede reservar espacio para servlet [{0}] 
porque está siendo descargado
+standardWrapper.waiting=Esperando por [{0}] instancia(s) para recuperar su 
espacio reservado
 
-threadLocalLeakPreventionListener.containerEvent.error=Excepción procesando 
evento de contenedor {0}
-threadLocalLeakPreventionListener.lifecycleEvent.error=Excepción procesando 
evento de ciclo de vida {0}
+threadLocalLeakPreventionListener.containerEvent.error=Excepción procesando 
evento de contenedor [{0}]
+threadLocalLeakPreventionListener.lifecycleEvent.error=Excepción procesando 
evento de ciclo de vida [{0}]
diff --git a/java/javax/servlet/LocalStrings_es.properties 
b/java/org/apache/catalina/deploy/LocalStrings_es.properties
similarity index 64%
copy from java/javax/servlet/LocalStrings_es.properties
copy to java/org/apache/catalina/deploy/LocalStrings_es.properties
index 604e94c..062d99d 100644
--- a/java/javax/servlet/LocalStrings_es.properties
+++ b/java/org/apache/catalina/deploy/LocalStrings_es.properties
@@ -13,11 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-err.not_iso8859_1=No es un carácter ISO 8859-1: {0}
-
-httpConstraintElement.invalidRolesDeny=No se pueden especificar Roles al 
utilizar DENY (DENEGAR)
-
-httpMethodConstraintElement.invalidMethod=Método HTTP inválido
-
-value.false=false
-value.true=true
+namingResources.cleanupCloseSecurity=Incapaz de obtener el método [{0}] para 
el recurso [{1}] en el contenedor  [{2}] debido a ello no se realizó la 
limpieza para ese recurso\n
+namingResources.cleanupNoClose=Recurso [{0}] en contenedor [{1}] no tien un 
método [{2}] por lo cual no ser hace una limpieza para ese recurso
+namingResources.ejbLookupLink=La referencia EJB [{0}] especifica ambas, un 
ejb-link y un nombre para lookup
diff --git a/java/org/apache/catalina/ha/deploy/LocalStrings_es.properties 
b/java/org/apache/catalina/ha/deploy/LocalStrings_es.properties
new file mode 100644
index 0000000..d886cce
--- /dev/null
+++ b/java/org/apache/catalina/ha/deploy/LocalStrings_es.properties
@@ -0,0 +1,29 @@
+# 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.
+
+farmWarDeployer.hostOnly=FarmWarDeployer sólo puede operar como un subelemento 
de una máquina del cluster!
+farmWarDeployer.modInstall=Installando webapp [{0}] desde [{1}]\n
+farmWarDeployer.modInstallFail=Incapaz de instalar WAR file
+farmWarDeployer.msgIoe=Incapáz de leer el archivo de despliegue de la granja
+farmWarDeployer.msgRxDeploy=Recibe el camino de despliegue del cluster [{0}], 
war [{1}]
+farmWarDeployer.removeFailLocal=Borrado local de [{0}] fallido
+farmWarDeployer.removeFailRemote=El borrado local de [{0}] falló, otro manager 
tiene la aplicación en servicio!
+farmWarDeployer.sendFragment=Fragmento war enviado al cluster con camino 
[{0}], war [{1}] a [{2}]\n
+farmWarDeployer.servicingUndeploy=La applicación [{0}] esta en servicion y no 
pude ser removida del nodo de respaldo del cluster
+farmWarDeployer.undeployEnd=El revertimiendo del despliegue de [{0}] ha 
terminado.\n
+
+warWatcher.cantListWatchDir=No se pueden listar archivos en WatchDir [{0}]: 
verifique si es un directorio y tiene permisos de lectura.\n
+warWatcher.checkWarResult=WarInfo.check() devolvió [{0}] para [{1}]
+warWatcher.checkingWar=Verificando archivo WAR [{0}]
diff --git a/java/org/apache/catalina/ha/session/LocalStrings_es.properties 
b/java/org/apache/catalina/ha/session/LocalStrings_es.properties
index 6b52bc6..ebd685c 100644
--- a/java/org/apache/catalina/ha/session/LocalStrings_es.properties
+++ b/java/org/apache/catalina/ha/session/LocalStrings_es.properties
@@ -13,6 +13,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+backupManager.startUnable=Imposible de iniciar BackupManager: [{0}]\n
+
 deltaManager.createMessage.access=Gestor [{0}]: creado mensaje de sesión [{1}] 
acceso.
 deltaManager.createMessage.accessChangePrimary=Gestor [{0}]: creado mensaje de 
sesión [{1}] acceso para cambiar el primario.
 deltaManager.createMessage.allSessionData=Gestor [{0}] envía todos los datos 
de sesión.
@@ -20,44 +22,46 @@ deltaManager.createMessage.allSessionTransfered=Gestor 
[{0}] envía todos los da
 deltaManager.createMessage.delta=Gestor [{0}]: crea mensaje de sesión [{1}] de 
requerimiento delta.
 deltaManager.createMessage.expire=Gestor [{0}]: crea mensaje de sesión [{1}] 
de expiración.
 deltaManager.createMessage.unableCreateDeltaRequest=No puedo serializar 
requerimiento delta para la id de sesión [{0}]
-deltaManager.createSession.newSession=Creada una DeltaSession con Id [{0}] 
Total contador={1}
-deltaManager.dropMessage=Gestor [{0}]: Quita mensaje {1} dentro de fase 
sincronizada GET_ALL_SESSIONS fecha inicio {2} fecha mensaje {3}
+deltaManager.createSession.newSession=Creada una DeltaSession con Id [{0}] 
Total contador=[{1}]
+deltaManager.dropMessage=Gestor [{0}]: Quita mensaje [{1}] dentro de fase 
sincronizada GET_ALL_SESSIONS fecha inicio [{2}] fecha mensaje [{3}]
 deltaManager.expireSessions=Gestor [{0}] expirando sesiones al apagar
 deltaManager.foundMasterMember=Hallado para contexto [{0}] el miembro maestro 
de réplica [{1}]
-deltaManager.loading.cnfe=ClassNotFoundException al cargar sesiones 
persistentes: {0}
-deltaManager.loading.existing.session=sobrecarga en sesión existente {0}
-deltaManager.loading.ioe=IOException al cargar sesiones persistentes: {0}
+deltaManager.loading.cnfe=ClassNotFoundException al cargar sesiones 
persistentes: [{0}]
+deltaManager.loading.existing.session=sobrecarga en sesión existente [{0}]
+deltaManager.loading.ioe=IOException al cargar sesiones persistentes: [{0}]
 deltaManager.loading.withContextClassLoader=Gestor [{0}]: Cargando los datos 
de objeto con un cargador de clase de contexto.
 deltaManager.loading.withoutClassLoader=Gestor [{0}]: Cargando los datos de 
objeto sin un cargador de clase de contexto.
 deltaManager.managerLoad=Excepción cargando sesiones desde almacenaje 
persistente
 deltaManager.noCluster=Arrancando... no hay clúster asociado con este 
contexto: [{0}]
+deltaManager.noContextManager=Manejador [{0}]: En respuesta al mensaje ''Tomar 
todos los datos de sesión (Get all session data)'' enviado a [{1}], recibión el 
mensaje ''El manejador no machea con ningún contexto (No matching context 
manager)'' luego de [{2}] ms.\n
 deltaManager.noMasterMember=Arrancando... sin otro miembro para el contexto 
[{0}] en dominio [{1}]
 deltaManager.noMembers=Gestor [{0}]: saltando estado de transferencia. No hay 
miembros activos en grupo de clúster.
-deltaManager.noSessionState=Gestor [{0}]: No se ha recibido estado de sesión a 
las {1}, agotando tiempo tras {2} ms.
+deltaManager.noSessionState=Gestor [{0}]: No se ha recibido estado de sesión a 
las [{1}], agotando tiempo tras [{2}] ms.
 deltaManager.receiveMessage.accessed=Gestor [{0}]: accedida sesión [{1}] 
recibida.
 deltaManager.receiveMessage.allSessionDataAfter=Gestor [{0}]: estado de sesión 
deserializado
 deltaManager.receiveMessage.allSessionDataBegin=Gestor [{0}]: recibidos datos 
de estado de sesión
 deltaManager.receiveMessage.createNewSession=Gestor [{0}]: creada sesión [{1}] 
recibida.
 deltaManager.receiveMessage.delta=Gestor [{0}]: delta sesión [{1}] recibida.
+deltaManager.receiveMessage.delta.unknown=Manejador [{0}]: recibió una 
diferencia de sesión para una sesión desconocida [{1}]
 deltaManager.receiveMessage.error=Gestor [{0}]: No puedo recibir mensaje a 
través del canal TCP
-deltaManager.receiveMessage.eventType=Gestor [{0}]: recibido SessionMessage de 
tipo=({1}) desde [{2}]
+deltaManager.receiveMessage.eventType=Gestor [{0}]: recibido SessionMessage de 
tipo=[{1}] desde [{2}]
 deltaManager.receiveMessage.expired=Gestor [{0}]: expirada sesión [{1}] 
recibida.
 deltaManager.receiveMessage.transfercomplete=Gestor [{0}] recibido desde nodo 
[{1}:{2}] estado de sesión transferido.
 deltaManager.receiveMessage.unloadingAfter=Gestor [{0}]: completada la 
descarga de sesiones
 deltaManager.receiveMessage.unloadingBegin=Gestor [{0}]: iniciada descarga de 
sesiones
-deltaManager.registerCluster=Registrar gestor {0} a elemento de clúster {1} 
con nombre {2}
-deltaManager.sendMessage.newSession=El gestor [{0}] envía nueva sesión ({1})
-deltaManager.sessionReceived=Gestor [{0}]; estado de sesión enviado a las {1} 
recibido en {2} ms.
-deltaManager.startClustering=Iniciando gestor de clúster a las {0}
+deltaManager.registerCluster=Registrar gestor [{0}] a elemento de clúster 
[{1}] con nombre [{2}]
+deltaManager.sendMessage.newSession=El gestor [{0}] envía nueva sesión [{1}]
+deltaManager.sessionReceived=Gestor [{0}]; estado de sesión enviado a las 
[{1}] recibido en [{2}] ms.
+deltaManager.startClustering=Iniciando gestor de clúster a las [{0}]
 deltaManager.stopped=El gestor [{0}] se está parando
 deltaManager.unableSerializeSessionID=No puedo seriallizar la ID de sesión 
[{0}]
-deltaManager.unloading.ioe=IOException al grabar sesiones persistentes: {0}
-deltaManager.waitForSessionState=Gestor [{0}], requiriendo estado de sesión 
desde {1}. Esta operación se agotará si no se recibe estado de sesión dentro de 
{2} segundos.
+deltaManager.unloading.ioe=IOException al grabar sesiones persistentes: [{0}]
+deltaManager.waitForSessionState=Gestor [{0}], requiriendo estado de sesión 
desde [{1}]. Esta operación se agotará si no se recibe estado de sesión dentro 
de [{2}] segundos.
 
-deltaRequest.showPrincipal=El Principal [{0}] está puesto a sesión {1}
-deltaRequest.wrongPrincipalClass=DeltaManager sólo soporta GenericPrincipal. 
Tu reino utilizó clase principal {0}.
+deltaRequest.showPrincipal=El Principal [{0}] está puesto a sesión [{1}]
+deltaRequest.wrongPrincipalClass=DeltaManager sólo soporta GenericPrincipal. 
Tu reino utilizó clase principal [{0}].
 
-deltaSession.notifying=Notificando clúster de expiración primaria={0} 
sessionId [{1}]
+deltaSession.notifying=Notificando clúster de expiración primaria=[{0}] 
sessionId [{1}]
 deltaSession.readAttribute=sesión [{0}] cargando atributo [{1}] con valor [{2}]
 deltaSession.readSession=readObject() cargando sesión [{0}]
 deltaSession.valueBinding.ex=Oyente ligándose a sesión lanzó una excepción
@@ -72,7 +76,7 @@ jvmRoute.clusterListener.stopped=Clúster 
JvmRouteSessionIDBinderListener parado
 jvmRoute.configure.warn=Por favor, ¡configura tu JvmRouteBinderValve en la 
válvula de máquina, no en la válvula del contexto!
 jvmRoute.contextNotFound=¡Contexto [{0}] no hallado en el nodo [{1}]!
 jvmRoute.failover=Detectada una caída con diferente jvmRoute - ruta original: 
[{0}] nueva: [{1}] en id de sesión [{2}]
-jvmRoute.foundManager=Hallado Clúster DeltaManager {0} en {1}
+jvmRoute.foundManager=Hallado Clúster DeltaManager [{0}] en [{1}]
 jvmRoute.hostNotFound=No hallada máquina [{0}]
 jvmRoute.listener.started=Arrancado Oyente Ligador de SessionID
 jvmRoute.listener.stopped=Parado Oyente Ligador de SessionID
@@ -80,17 +84,17 @@ jvmRoute.lostSession=Perdida Sesión [{0}] en ruta [{1}]
 jvmRoute.missingJvmRouteAttribute=¡No se ha configurado atributo de motor 
jvmRoute!
 jvmRoute.newSessionCookie=Poniendo cookie con id de sesión [{0}] nombre: [{1}] 
ruta: [{2}] seguro: [{3}] httpOnly: [{4}]
 jvmRoute.noCluster=La válvula JvmRouterBinderValve se encuentra configurada, 
pero no se usa el clúster. Aún funcionará la tolerancia a fallos, siempre que 
se esté usando PersistentManager.
-jvmRoute.notFoundManager=No hallado Clúster DeltaManager {0} en {1}
+jvmRoute.notFoundManager=No hallado Clúster DeltaManager [{0}] en [{1}]
 jvmRoute.receiveMessage.sessionIDChanged=Clúster 
JvmRouteSessionIDBinderListener recibió ID original de sesión [{0}] puesto a 
nuevo id [{1}] para la ruta de contexto [{2}]
 jvmRoute.run.already=receptor jvmRoute SessionID ya ejecutado
-jvmRoute.set.orignalsessionid=Puesta id Orginal de Sesión en atributo de 
requerimiento {0} valor: {1}
+jvmRoute.set.orignalsessionid=Puesta id Orginal de Sesión en atributo de 
requerimiento [{0}] valor: [{1}]
 jvmRoute.skipURLSessionIDs=¡Saltado chequeo de reasignación de ruta jvm, la 
sessionid viene desde URL!
-jvmRoute.turnoverInfo=Ajustado tiempo de Chequeo a {0} mseg
+jvmRoute.turnoverInfo=Ajustado tiempo de Chequeo a [{0}] mseg
 jvmRoute.valve.started=JvmRouteBinderValve arrancada
 jvmRoute.valve.stopped=JvmRouteBinderValve parada
 
 serializablePrincipal.readPrincipal.cnfe=readPrincipal: No pude volver a crea 
el usuario Principal
 
-standardSession.notSerializable=No puedo serializar atributo de sesión {0} 
para sesión {1}
+standardSession.notSerializable=No puedo serializar atributo de sesión [{0}] 
para sesión [{1}]
 standardSession.removeAttribute.ise=removeAttribute: Sesión ya invalidada
 standardSession.setAttribute.namenull=setAttribute: parámetro de nombre no 
puede ser nulo
diff --git a/java/org/apache/catalina/ha/tcp/LocalStrings_es.properties 
b/java/org/apache/catalina/ha/tcp/LocalStrings_es.properties
index 77d79a4..b7e1160 100644
--- a/java/org/apache/catalina/ha/tcp/LocalStrings_es.properties
+++ b/java/org/apache/catalina/ha/tcp/LocalStrings_es.properties
@@ -14,20 +14,20 @@
 # limitations under the License.
 
 ReplicationValve.crossContext.add=añadir contenedor de réplica de sesión de 
Contexto Cruzado a replicationValve threadlocal
-ReplicationValve.crossContext.registerSession=retistrar id de sesión de 
Contexto Cruzado={0} desde contexto {1}
+ReplicationValve.crossContext.registerSession=retistrar id de sesión de 
Contexto Cruzado=[{0}] desde contexto [{1}]
 ReplicationValve.crossContext.remove=quitar contenedor de réplica de sesión de 
Contexto Cruzado a replicationValve threadlocal
-ReplicationValve.crossContext.sendDelta=enviar delta de sesión de Contexto 
Cruzado desde contexto {0}.
-ReplicationValve.filter.failure=No puedo compilar filtror={0}
-ReplicationValve.filter.loading=Cargando filtros de requerimiento={0}
-ReplicationValve.invoke.uri=Invocando requerimiento de réplica en {0}
+ReplicationValve.crossContext.sendDelta=enviar delta de sesión de Contexto 
Cruzado desde contexto [{0}].
+ReplicationValve.filter.failure=No puedo compilar filtror=[{0}]
+ReplicationValve.filter.loading=Cargando filtros de requerimiento=[{0}]
+ReplicationValve.invoke.uri=Invocando requerimiento de réplica en [{0}]
 ReplicationValve.nocluster=No cluster configured for this request.
-ReplicationValve.resetDeltaRequest=Cluster is standalone: reset Session 
Request Delta at context {0}
+ReplicationValve.resetDeltaRequest=Cluster is standalone: reset Session 
Request Delta at context [{0}]
 ReplicationValve.send.failure=Unable to perform replication request.
 ReplicationValve.send.invalid.failure=Unable to send session [id={0}] invalid 
message over cluster.
-ReplicationValve.session.found=Context {0}: Found session {1} but it isn''t a 
ClusterSession.
-ReplicationValve.session.indicator=Context {0}: Primarity of session {0} in 
request attribute {1} is {2}.
-ReplicationValve.session.invalid=Context {0}: Requested session {1} is 
invalid, removed or not replicated at this node.
-ReplicationValve.stats=Average request time= {0} ms for Cluster overhead 
time={1} ms for {2} requests {3} filter requests {4} send requests {5} cross 
context requests (Request={6} ms Cluster={7} ms).
+ReplicationValve.session.found=Context [{0}]: Found session [{1}] but it 
isn''t a ClusterSession.
+ReplicationValve.session.indicator=Context [{0}]: Primarity of session [{0}] 
in request attribute [{1}] is [{2}].
+ReplicationValve.session.invalid=Context [{0}]: Requested session [{1}] is 
invalid, removed or not replicated at this node.
+ReplicationValve.stats=Average request time= [{0}] ms for Cluster overhead 
time=[{1}] ms for [{2}] requests [{3}] filter requests [{4}] send requests 
[{5}] cross context requests (Request=[{6}] ms Cluster=[{7}] ms).
 
 SimpleTcpCluster.default.addClusterListener=Add Default ClusterListener at 
cluster {0}
 SimpleTcpCluster.default.addClusterReceiver=Add Default ClusterReceiver at 
cluster {0}
diff --git a/java/org/apache/catalina/loader/LocalStrings_es.properties 
b/java/org/apache/catalina/loader/LocalStrings_es.properties
index ed6cec1..844c422 100644
--- a/java/org/apache/catalina/loader/LocalStrings_es.properties
+++ b/java/org/apache/catalina/loader/LocalStrings_es.properties
@@ -49,33 +49,33 @@ 
webappClassLoader.clearReferencesResourceBundlesCount=Quitadas las referencias d
 webappClassLoader.clearReferencesResourceBundlesFail=No puede limpiar las 
referencisa de ResourceBundle para la aplicación web [{0}]
 webappClassLoader.clearRmiFail=No pude limpiar el cargador del contexto de 
clase referenciado desde sun.rmi.transport.Target para la aplicación web [{0}]
 webappClassLoader.clearRmiInfo=No pude hallar la clase 
sun.rmi.transport.Target para limpiar el cargador de contexto de clase para la 
aplicación web [{0}]. Esto es lo esperado em máquinas que no son de Sun.
-webappClassLoader.illegalJarPath=Detectada entrada ilegal de JAR con nombre {0}
+webappClassLoader.illegalJarPath=Detectada entrada ilegal de JAR con nombre 
[{0}]
 webappClassLoader.jdbcRemoveFailed=Ha fallado el desregistro del conductor 
JDBC para la aplicación web [{0}]
 webappClassLoader.jdbcRemoveStreamError=Excepción al cerrar flujo de entrada 
durante desregistro de conductor JDBC para apliicación web [{0}]
-webappClassLoader.readError=Error de lectura de recurso: No pude cargar {0}.
+webappClassLoader.readError=Error de lectura de recurso: No pude cargar [{0}].
 webappClassLoader.stopThreadFail=No pude terminar el hilo con nombre [{0}] 
para la aplicación web [{1}]
 webappClassLoader.stopTimerThreadFail=No pude terminar TimerThread con nombre 
[{0}] para la aplicación web [{1}]
-webappClassLoader.stopped=Acceso ilegal: esta instancia de aplicación web ya 
ha sido parada.  Could not load {0}.  La eventual traza de pila que sigue ha 
sido motivada por un error lanzado con motivos de depuración así como para 
intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto 
funcional.
-webappClassLoader.validationErrorJarPath=no pude validar entrada JAR con 
nombre {0}
+webappClassLoader.stopped=Acceso ilegal: esta instancia de aplicación web ya 
ha sido parada.  Could not load [{0}].  La eventual traza de pila que sigue ha 
sido motivada por un error lanzado con motivos de depuración así como para 
intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto 
funcional.
+webappClassLoader.validationErrorJarPath=no pude validar entrada JAR con 
nombre [{0}]
 webappClassLoader.warnRequestThread=La aplicación web [{0}] aún se encuentra 
procesando un requerimiento que no ha terminados. Esto tiene todas las 
papeletas de convertirse en un fallo de memoria. Puedes controlar el tiempo 
permitido a los requerimientos para acabar mediante el uso del atributo 
unloadDelay de la implementación estándar de Contexto.
 webappClassLoader.warnThread=La aplicación web [{0}] parece haber arrancado un 
hilo llamado [{1}] pero no ha podido pararlo. Esto tiene todas las papeletas de 
convertirse en un fallo de memoria.
 webappClassLoader.warnTimerThread=La aplicación web [{0}] parece haber 
arrancado un TimerThread con nombre [{1}] vía de la API java.util.Timer, pero 
no ha podido pararlo. Para prevenir un fallo de memoria, el cronómetro (y el 
hilo asociado) hasido cancelado a la fuerza.
-webappClassLoader.wrongVersion=(no puedo cargar clase {0})
+webappClassLoader.wrongVersion=(no puedo cargar clase [{0}])
 
 webappLoader.addRepository=Añadiendo repositorio {0}
 webappLoader.alreadyStarted=Ya se ha arrancado el Cargador
 webappLoader.checkInterval=No puedo poner el intervalo de revisión de recarga 
a {0} segundos
-webappLoader.classDeploy=Despliegue de archivos de clase {0} en {1}
+webappLoader.classDeploy=Despliegue de archivos de clase [{0}] en [{1}]
 webappLoader.copyFailure=No pude copiar los recursos
-webappLoader.deploy=Desplegando repositorios de clase en directorio de trabajo 
{0}
+webappLoader.deploy=Desplegando repositorios de clase en directorio de trabajo 
[{0}]
 webappLoader.failModifiedCheck=Modificaciones de pista de error
-webappLoader.jarDeploy=Despliegue del JAR {0} en {1}
+webappLoader.jarDeploy=Despliegue del JAR [{0}] en [{1}]
 webappLoader.mkdirFailure=No pude crear directorio de destino para copiar los 
recursos
 webappLoader.namingFailure=No pude acceder al recurso {0}
 webappLoader.notContext=No puedo auto-recargar a menos que nuestro Contenedor 
sea un Contexto
 webappLoader.notReloadabe=Se ha puesto la propiedad Recargable a falsa
 webappLoader.notStarted=Aún no se ha arrancado el Cargador
-webappLoader.reloadable=No puedo poner la propiedad recargable a {0}
+webappLoader.reloadable=No puedo poner la propiedad recargable a [{0}]
 webappLoader.reloading=Se han activado los chequeos de Recarga para este 
Contexto
 webappLoader.removeRepository=Quitando repositorio {0}
 webappLoader.starting=Arrancando este Cargador
diff --git a/java/org/apache/catalina/manager/LocalStrings_es.properties 
b/java/org/apache/catalina/manager/LocalStrings_es.properties
index 3e3d595..146cc89 100644
--- a/java/org/apache/catalina/manager/LocalStrings_es.properties
+++ b/java/org/apache/catalina/manager/LocalStrings_es.properties
@@ -16,7 +16,7 @@
 htmlManagerServlet.appsAvailable=Ejecutándose
 htmlManagerServlet.appsExpire=Expirar sesiones
 htmlManagerServlet.appsName=Nombre a Mostrar
-htmlManagerServlet.appsPath=Trayectoria
+htmlManagerServlet.appsPath=Ruta
 htmlManagerServlet.appsReload=Recargar
 htmlManagerServlet.appsSessions=Sesiones
 htmlManagerServlet.appsStart=Arrancar
@@ -25,18 +25,21 @@ htmlManagerServlet.appsTasks=Comandos
 htmlManagerServlet.appsTitle=Aplicaciones
 htmlManagerServlet.appsUndeploy=Replegar
 htmlManagerServlet.appsVersion=Versión
+htmlManagerServlet.connectorStateProcessingTime=Tiempo de procesamiento:
+htmlManagerServlet.connectorStateTableTitleRequest=Solicitud
+htmlManagerServlet.connectorStateTableTitleVHost=VHost
 htmlManagerServlet.deployButton=Desplegar
 htmlManagerServlet.deployConfig=URL de archivo de Configuración XML:
 htmlManagerServlet.deployPath=Trayectoria de Contexto (opcional):
 htmlManagerServlet.deployServer=Desplegar directorio o archivo WAR localizado 
en servidor
 htmlManagerServlet.deployTitle=Desplegar
 htmlManagerServlet.deployUpload=Archivo WAR a desplegar
-htmlManagerServlet.deployUploadFail=FALLO - Falló Carga de Despliegue, 
Excepción: {0}
+htmlManagerServlet.deployUploadFail=FALLO - Falló Carga de Despliegue, 
Excepción: [{0}]
 htmlManagerServlet.deployUploadFile=Seleccione archivo WAR a cargar
-htmlManagerServlet.deployUploadInServerXml=FALLO - El fichero war "{0}" no se 
puede cargar si se define el contexto en server.xml
+htmlManagerServlet.deployUploadInServerXml=FALLO - El fichero war [{0}] no se 
puede cargar si se define el contexto en server.xml
 htmlManagerServlet.deployUploadNoFile=FALLO - Falló la carga del fichero, no 
hay fichero
-htmlManagerServlet.deployUploadNotWar=FALLO - El fichero cargado "{0}" debe de 
ser un .war
-htmlManagerServlet.deployUploadWarExists=FALLO - El fichero war "{0}" ya 
existe en el servidor
+htmlManagerServlet.deployUploadNotWar=FALLO - El fichero cargado [{0}] debe de 
ser un .war
+htmlManagerServlet.deployUploadWarExists=FALLO - El fichero war [{0}] ya 
existe en el servidor
 htmlManagerServlet.deployWar=URL de WAR o Directorio:
 htmlManagerServlet.diagnosticsLeak=Revisa a ver si una aplicación web ha 
causado fallos de memoria al parar, recargar o replegarse.
 htmlManagerServlet.diagnosticsLeakButton=Halla fallos de memoria
@@ -44,75 +47,79 @@ htmlManagerServlet.diagnosticsLeakWarning=Este chequeo de 
diagnóstico disparar
 htmlManagerServlet.diagnosticsTitle=Diagnósticos
 htmlManagerServlet.expire.explain=sin trabajar &ge;
 htmlManagerServlet.expire.unit=minutos
-htmlManagerServlet.findleaksList=Las siguientes aplicaciones web fueron 
paradas (recargadas, replegadas), pero sus clases de las ejecuciones previas 
aún se encuentran en memoria, causando así un fallo de memoria (usa un 
perfilador para confirmarlo):\n
+htmlManagerServlet.findleaksList=Las siguientes aplicaciones web fueron 
paradas (recargadas, replegadas), pero sus clases de las ejecuciones previas 
aún se encuentran en memoria, causando así un fallo de memoria (usa un 
perfilador para confirmarlo):
 htmlManagerServlet.findleaksNone=No parece haber aplicaciones web que hayan 
disparado un fallo de memoria al ser paradas, recargadas o replegadas.
 htmlManagerServlet.helpHtmlManager=Ayuda HTML de Gestor
 htmlManagerServlet.helpHtmlManagerFile=../docs/html-manager-howto.html
 htmlManagerServlet.helpManager=Ayuda de Gestor
 htmlManagerServlet.helpManagerFile=../docs/manager-howto.html
+htmlManagerServlet.jvmFreeMemory=Memoria disponible:
+htmlManagerServlet.jvmTableTitleMemoryPool=Pool de Memoria
 htmlManagerServlet.list=Listar Aplicaciones
 htmlManagerServlet.manager=Gestor
 htmlManagerServlet.messageLabel=Mensaje:
 htmlManagerServlet.noManager=-
 htmlManagerServlet.noVersion=Ninguno especificado
+htmlManagerServlet.osTotalPageFile=Tamaño total de archivo de página:
 htmlManagerServlet.serverHostname=NombreDeMáquina
 htmlManagerServlet.serverIPAddress=Dirección IP
 htmlManagerServlet.serverJVMVendor=Vendedor JVM
 htmlManagerServlet.serverJVMVersion=Versión JVM
 htmlManagerServlet.serverOSArch=Arquitectura de SO
-htmlManagerServlet.serverOSName=Nombre de SO
+htmlManagerServlet.serverOSName=Nombre del SO
 htmlManagerServlet.serverOSVersion=Versión de SO
 htmlManagerServlet.serverTitle=Información de Servidor
 htmlManagerServlet.serverVersion=Versión de Tomcat
 htmlManagerServlet.title=Gestor de Aplicaciones Web de Tomcat
 
-managerServlet.alreadyContext=FALLO - Ya existe la aplicación en la 
trayectoria {0}
+managerServlet.alreadyContext=FALLO - Ya existe la aplicación en la 
trayectoria [{0}]
 managerServlet.alreadyDocBase=FALLO - Directorio {0} ya está siendo usado
 managerServlet.configured=OK - Desplegada aplicación desde archivo de contexto 
{0}
 managerServlet.deleteFail=FALLO - No pude borrar [{0}]. La presencia continua 
de este fichero puede causar problemas.
-managerServlet.deployFailed=FALLO - No pude desplegar la aplicación en ruta de 
contexto {0}
-managerServlet.deployed=OK - Desplegada aplicación en trayectoria de contexto 
{0}
-managerServlet.deployedButNotStarted=FALLO - Apliación desplegada en la ruta 
de contexto {0}, pero el contexto no pudo arrancar
-managerServlet.exception=FALLO - Encontrada excepción {0}
+managerServlet.deployFailed=FALLO - No pude desplegar la aplicación en ruta de 
contexto [{0}]
+managerServlet.deployed=OK - Desplegada aplicación en trayectoria de contexto 
[{0}]
+managerServlet.deployedButNotStarted=FALLO - Apliación desplegada en la ruta 
de contexto [{0}], pero el contexto no pudo arrancar
+managerServlet.exception=FALLO - Encontrada excepción [{0}]
 managerServlet.findleaksFail=FALLO - Ha fallado la búsqueda de fallos: La 
Máquina no es una instancia de StandardHost
 managerServlet.findleaksList=OK - Hallados fallos potenciales de memoria en 
las siguientes aplicaciones:
 managerServlet.findleaksNone=OK - No se han hallado fallos de memoria
-managerServlet.invalidPath=FALLO - Se ha especificado una trayectoria inválida 
de contexto {0}
+managerServlet.invalidCommand=Fallo - Se proveiron parámetros inválidos para 
el comando [{0}]
+managerServlet.invalidPath=FALLO - Se ha especificado una trayectoria inválida 
de contexto [{0}]
 managerServlet.invalidWar=FALLO - Se ha especificado una URL de aplicación 
inválida {0}
-managerServlet.listed=OK - Aplicaciones listadas para máquina virtual {0}
+managerServlet.listed=OK - Aplicaciones listadas para máquina virtual [{0}]
 managerServlet.listitem={0}:{1}:{2}:{3}
 managerServlet.mkdirFail=FALLO - No pude crear directorio [{0}]
 managerServlet.noAppBase=FALLO - No puedo identificar aplicación base para 
trayectoria de contexto {0}
 managerServlet.noCommand=FALLO - No se ha especificado comando
-managerServlet.noContext=FALLO - No existe contexto para trayectoria {0}
+managerServlet.noContext=FALLO - No existe contexto para trayectoria [{0}]
 managerServlet.noDirectory=FALLO - Documento base No-directorio para 
trayectoria {0}
 managerServlet.noDocBase=FALLO - No puedo replegar documento base para 
trayectoria {0}
 managerServlet.noGlobal=FALLO - No hay disponibles recursos globales JNDI
-managerServlet.noManager=FALLO - No existe gestor para ruta {0}
+managerServlet.noManager=FALLO - No existe gestor para ruta [{0}]
 managerServlet.noReload=FALLO - Recarga no soportada en WAR desplegado en 
trayectoria {0}
 managerServlet.noRename=FALLO - No pudeo desplegar WAR cargado para 
trayectoria {0}
 managerServlet.noRole=FALLO - El usuario no desempeña el papel de {0}
 managerServlet.noSelf=FALLO - El gestor no puede recargarse, replegarse, 
pararse o replegarse a sí mismo
 managerServlet.noWrapper=El Contenedor no ha llamado a setWrapper() para este 
servlet
-managerServlet.notDeployed=FALLO - El contexto {0} está definido en server.xml 
y puede que no esté desplegado
+managerServlet.notDeployed=FALLO - El contexto [{0}] está definido en 
server.xml y puede que no esté desplegado
 managerServlet.objectNameFail=FALLO - No pude registrar objeto de nombre [{0}] 
para Gestor de Servlet
-managerServlet.postCommand=FALLO - Intenté usar el comando {0} vía un 
requerimiento GET pero se necesita POST
-managerServlet.reloaded=OK - Recargada aplicación en trayectoria de contexto 
{0}
+managerServlet.postCommand=FALLO - Intenté usar el comando [{0}] vía un 
requerimiento GET pero se necesita POST
+managerServlet.reloaded=OK - Recargada aplicación en trayectoria de contexto 
[{0}]
 managerServlet.resourcesAll=OK - Listados recursos globales de todos los tipos
-managerServlet.resourcesType=OK - Listados recursos globales de tipo {0}
-managerServlet.saveFail=FAIL - Fallo al guardar la configuración: {0}
+managerServlet.resourcesType=OK - Listados recursos globales de tipo [{0}]
+managerServlet.saveFail=FAIL - Fallo al guardar la configuración: [{0}]
 managerServlet.saved=OK - Configuración de Servidor guardada
-managerServlet.savedContext=OK - Configuración de Contexto {0} guardada
-managerServlet.sessiondefaultmax=Intervalo máximo por defecto de sesión 
inactiva {0} minutos
-managerServlet.sessions=OK - Información de sesión para aplicación en 
trayectoria de contexto {0}
-managerServlet.sessiontimeout={0} minutos: {1} sesiones
-managerServlet.sessiontimeout.expired={0} minutos: expired {1} sesiones
-managerServlet.sessiontimeout.unlimited=unlimited minutos: {0} sesiones
-managerServlet.startFailed=FALLO - No se pudo arrancar la aplicación en 
trayectoria de contexto {0}
-managerServlet.started=OK - Arrancada aplicación en trayectoria de contexto {0}
-managerServlet.stopped=OK - Parada aplicación en trayectoria de contexto {0}
-managerServlet.undeployed=OK - Replegada aplicación en trayectoria de contexto 
{0}
-managerServlet.unknownCommand=FALLO - Comando desconocido {0}
+managerServlet.savedContext=OK - Configuración de Contexto [{0}] guardada
+managerServlet.sessiondefaultmax=Intervalo máximo por defecto de sesión 
inactiva [{0}] minutos
+managerServlet.sessions=OK - Información de sesión para aplicación en 
trayectoria de contexto [{0}]
+managerServlet.sessiontimeout=[{0}] minutos: [{1}] sesiones
+managerServlet.sessiontimeout.expired=[{0}] minutos: expired [{1}] sesiones
+managerServlet.sessiontimeout.unlimited=unlimited minutos: [{0}] sesiones
+managerServlet.startFailed=FALLO - No se pudo arrancar la aplicación en 
trayectoria de contexto [{0}]
+managerServlet.started=OK - Arrancada aplicación en trayectoria de contexto 
[{0}]
+managerServlet.stopped=OK - Parada aplicación en trayectoria de contexto [{0}]
+managerServlet.undeployed=OK - Replegada aplicación en trayectoria de contexto 
[{0}]
+managerServlet.unknownCommand=FALLO - Comando desconocido [{0}]
 managerServlet.userDatabaseError=FALLO - No puedo resolver referencia de base 
de datos de usuario
 managerServlet.userDatabaseMissing=FALLO - No se encuentra disponible base de 
datos de usuario
 
diff --git a/java/org/apache/catalina/manager/host/LocalStrings_es.properties 
b/java/org/apache/catalina/manager/host/LocalStrings_es.properties
index 4416338..e1d2c3c 100644
--- a/java/org/apache/catalina/manager/host/LocalStrings_es.properties
+++ b/java/org/apache/catalina/manager/host/LocalStrings_es.properties
@@ -14,36 +14,36 @@
 # limitations under the License.
 
 hostManagerServlet.add=añadir: Añadiendo máquina [{0}]
-hostManagerServlet.addFailed=FALLO - No pude añadir máquina {0}
+hostManagerServlet.addFailed=FALLO - No pude añadir máquina [{0}]
 hostManagerServlet.addSuccess=OK - Máquina añadida [{0}]
-hostManagerServlet.alreadyHost=FALLO - Ya existe máquina con nombre de máquina 
{0}
+hostManagerServlet.alreadyHost=FALLO - Ya existe máquina con nombre de máquina 
[{0}]
 hostManagerServlet.alreadyStarted=FALLO - La máqiuina [{0}] ya ha arrancado
 hostManagerServlet.alreadyStopped=FALLO - La máquina [{0}] ya se ha parado
 hostManagerServlet.appBaseCreateFail=FALLO - No pude crear appBase [{0}] para 
la máquina [{1}]
-hostManagerServlet.cannotRemoveOwnHost=FALLO - No puedo quitar máquina propia 
{0}
-hostManagerServlet.cannotStartOwnHost=FALLO - No puedo empezar máquina propia 
{0}
-hostManagerServlet.cannotStopOwnHost=FALLO - No puedo para máquina propia {0}
+hostManagerServlet.cannotRemoveOwnHost=FALLO - No puedo quitar máquina propia 
[{0}]
+hostManagerServlet.cannotStartOwnHost=FALLO - No puedo empezar máquina propia 
[{0}]
+hostManagerServlet.cannotStopOwnHost=FALLO - No puedo para máquina propia [{0}]
 hostManagerServlet.configBaseCreateFail=FALLO - No pude identificar configBase 
para la máquina [{0}]
-hostManagerServlet.exception=FALLO - Encontrada excepción {0}
-hostManagerServlet.invalidHostName=FALLO - Se ha especificado un nombre 
inválido de máquina {0}
+hostManagerServlet.exception=FALLO - Encontrada excepción [{0}]
+hostManagerServlet.invalidHostName=FALLO - Se ha especificado un nombre 
inválido de máquina [{0}]
 hostManagerServlet.list=listar: Listando máquinas para motor [{0}]
 hostManagerServlet.listed=OK - Máquinas listadas
-hostManagerServlet.listitem={0}:{1}
+hostManagerServlet.listitem=[{0}]:[{1}]
 hostManagerServlet.managerXml=FALLO - no pude instalar manager.xml
 hostManagerServlet.noCommand=FALLO - No se ha especificado comando
-hostManagerServlet.noHost=FALLO - El nombre de máquina {0} no existe
+hostManagerServlet.noHost=FALLO - El nombre de máquina [{0}] no existe
 hostManagerServlet.noWrapper=El contenedor no ha llamado a setWrapper() para 
este servlet
-hostManagerServlet.postCommand=FALLO - Intenté usar el comando {0} vía un 
requerimiento GET pero es necesario POST
+hostManagerServlet.postCommand=FALLO - Intenté usar el comando [{0}] vía un 
requerimiento GET pero es necesario POST
 hostManagerServlet.remove=quitar: Quitando máquina [{0}]
-hostManagerServlet.removeFailed=FALLO - No pude quitar máquina {0}
+hostManagerServlet.removeFailed=FALLO - No pude quitar máquina [{0}]
 hostManagerServlet.removeSuccess=OK - Máquina removida [{0}]
 hostManagerServlet.start=arrancar: Arrancando máquina con nombre [{0}]
-hostManagerServlet.startFailed=FALLO - No pude arrancar máquina {0}
-hostManagerServlet.started=OK - Máquina {0} arrancada
+hostManagerServlet.startFailed=FALLO - No pude arrancar máquina [{0}]
+hostManagerServlet.started=OK - Máquina [{0}] arrancada
 hostManagerServlet.stop=parar: Parando máquina con nombre [{0}]
-hostManagerServlet.stopFailed=FALLO - No pude parar máquina {0}
-hostManagerServlet.stopped=OK - Máquina {0} parada
-hostManagerServlet.unknownCommand=FALLO - Comando desconocido {0}
+hostManagerServlet.stopFailed=FALLO - No pude parar máquina [{0}]
+hostManagerServlet.stopped=OK - Máquina [{0}] parada
+hostManagerServlet.unknownCommand=FALLO - Comando desconocido [{0}]
 
 htmlHostManagerServlet.addAliases=Aliases:
 htmlHostManagerServlet.addAppBase=App base:
@@ -51,7 +51,7 @@ htmlHostManagerServlet.addAutoDeploy=AutoDeploy
 htmlHostManagerServlet.addButton=Añadir
 htmlHostManagerServlet.addDeployOnStartup=DeployOnStartup
 htmlHostManagerServlet.addDeployXML=DeployXML
-htmlHostManagerServlet.addHost=Máquina
+htmlHostManagerServlet.addHost=Maquina
 htmlHostManagerServlet.addManager=App de Gestor
 htmlHostManagerServlet.addName=Nombre:
 htmlHostManagerServlet.addTitle=Añadir Máquina Virtual
@@ -72,7 +72,7 @@ htmlHostManagerServlet.manager=Gestor de Máquina
 htmlHostManagerServlet.messageLabel=Mensaje:
 htmlHostManagerServlet.serverJVMVendor=Vendedor JVM
 htmlHostManagerServlet.serverJVMVersion=Versión de JVM
-htmlHostManagerServlet.serverOSArch=Arquitectura de SO
+htmlHostManagerServlet.serverOSArch=Arquitectura del SO
 htmlHostManagerServlet.serverOSName=Nombre de SO
 htmlHostManagerServlet.serverOSVersion=Versión de SO
 htmlHostManagerServlet.serverTitle=Información de Servidor
diff --git a/java/org/apache/coyote/LocalStrings_es.properties 
b/java/org/apache/catalina/mbeans/LocalStrings_es.properties
similarity index 86%
copy from java/org/apache/coyote/LocalStrings_es.properties
copy to java/org/apache/catalina/mbeans/LocalStrings_es.properties
index 2cff96d..b09f904 100644
--- a/java/org/apache/coyote/LocalStrings_es.properties
+++ b/java/org/apache/catalina/mbeans/LocalStrings_es.properties
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-abstractConnectionHandler.error=Error leyendo requerimiento, ignorado
+jmxRemoteLifecycleListener.invalidURL=LA URL del servicio JMX solicitada por 
el servidor [{0}], [{1}], fue no válida
diff --git a/java/org/apache/catalina/realm/LocalStrings_es.properties 
b/java/org/apache/catalina/realm/LocalStrings_es.properties
index 6720356..b939d08 100644
--- a/java/org/apache/catalina/realm/LocalStrings_es.properties
+++ b/java/org/apache/catalina/realm/LocalStrings_es.properties
@@ -13,91 +13,92 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-combinedRealm.addRealm=Añadir reino "{0}", totalizando "{1}" reinos
-combinedRealm.authFail=No pude autenticar al usuario "{0}" con el reino "{1}"
-combinedRealm.authStart=Intentando autentica al usuario "{0}" con el reino 
"{1}"
-combinedRealm.authSuccess=Usuario autenticado "{0}" con reino "{1}"
+combinedRealm.addRealm=Añadir reino [{0}], totalizando [{1}] reinos
+combinedRealm.authFail=No pude autenticar al usuario [{0}] con el reino [{1}]
+combinedRealm.authStart=Intentando autentica al usuario [{0}] con el reino 
[{1}]
+combinedRealm.authSuccess=Usuario autenticado [{0}] con reino [{1}]
 combinedRealm.getName=No se debería de llamar nunca al método getName()
 combinedRealm.getPassword=No se debería de llamar nunca al método getPassword()
 combinedRealm.getPrincipal=No se debería de llamar nunca al método 
getPrincipal()
-combinedRealm.realmStartFail=No pude arrancar reino "{0}"
+combinedRealm.realmStartFail=No pude arrancar reino [{0}]
 combinedRealm.unexpectedMethod=Una llamada inesperada se realizó a un método 
del reino combinado
 
-dataSourceRealm.authenticateFailure=Nombre de usuario {0} NO autenticado con 
éxito
-dataSourceRealm.authenticateSuccess=Nombre de usuario {0} autenticado con éxito
+dataSourceRealm.authenticateFailure=Nombre de usuario [{0}] NO autenticado con 
éxito
+dataSourceRealm.authenticateSuccess=Nombre de usuario [{0}] autenticado con 
éxito
 dataSourceRealm.close=Excepción cerrando conexión a base de datos
 dataSourceRealm.exception=Excepción realizando autenticación
-dataSourceRealm.getPassword.exception=Excepción recuperando contraseña para 
"{0}"
-dataSourceRealm.getRoles.exception=Excepción recuperando papeles para "{0}"
+dataSourceRealm.getPassword.exception=Excepción recuperando contraseña para 
[{0}]
+dataSourceRealm.getRoles.exception=Excepción recuperando papeles para [{0}]
 dataSourceRealm.open=Excepción abriendo conexión a base de datos
 
 jaasCallback.digestpassword=Resumida contraseña "{0}" como "{1}"
 jaasCallback.password=Devuelta contraseña "{0}"
-jaasCallback.username=Devuelto nombre de usuario "{0}"
+jaasCallback.username=Devuelto nombre de usuario [{0}]
 
-jaasRealm.accountExpired=El usuario {0} NO ha sido autentificado porque ha 
expirado su cuenta
-jaasRealm.authenticateFailure=Nombre de usuario "{0}" NO autenticado con éxito
-jaasRealm.authenticateSuccess=Nombre de usuario "{0}" autenticado con éxito 
como Principal "{1}" -- También se ha creado el Asunto
-jaasRealm.beginLogin=JAASRealm login requerido para nombre de usuario "{0}" 
usando LoginContext para aplicación "{1}"
+jaasRealm.accountExpired=El usuario [{0}] NO ha sido autentificado porque ha 
expirado su cuenta
+jaasRealm.authenticateFailure=Nombre de usuario [{0}] NO autenticado con éxito
+jaasRealm.authenticateSuccess=Nombre de usuario [{0}] autenticado con éxito 
como Principal [{1}] -- También se ha creado el Asunto
+jaasRealm.beginLogin=JAASRealm login requerido para nombre de usuario [{0}] 
usando LoginContext para aplicación [{1}]
 jaasRealm.cachePrincipal=Usuario Principal "{0}" en caché; tiene {1} papel de 
Principal
-jaasRealm.checkPrincipal=Revisando Principal "{0}" [{1}]
-jaasRealm.credentialExpired=El usuario {0} NO ha sido autentificado porque ha 
expirado su credencial
-jaasRealm.failedLogin=El usuario {0} NO ha sido autentificado porque ha 
fallado el login
+jaasRealm.checkPrincipal=Revisando Principal [{0}] [{1}]
+jaasRealm.credentialExpired=El usuario [{0}] NO ha sido autentificado porque 
ha expirado su credencial
+jaasRealm.failedLogin=El usuario [{0}] NO ha sido autentificado porque ha 
fallado el login
 jaasRealm.isInRole.match=Hallado papel de Principal coincidente.
 jaasRealm.isInRole.noMatch=NO hallado papel de Principal coincidente.
 jaasRealm.isInRole.noPrincipalOrRole=No se han hallado papeles de Principal. 
El usuario Principal o el Asunto es nulo o el usuario Principal no está en caché
 jaasRealm.isInRole.possessesRole=El Usuario Principal tiene un papele de 
Principal llamado "{0}"
 jaasRealm.isInRole.principalCached=El Usuario Principal tiene {0} papeles de 
Principal
 jaasRealm.isInRole.start=Revisando si el usuario Principal "{0}" tiene el 
papel "{1}"
-jaasRealm.loginContextCreated=JAAS LoginContext creado para nombre de usuario 
"{0}"
-jaasRealm.loginException=Excepción de Login autenticando nombre de usuario {0}
-jaasRealm.rolePrincipalAdd=Añadiend papel Principal "{0}" a los papeles de 
este usuario Principal
+jaasRealm.loginContextCreated=JAAS LoginContext creado para nombre de usuario 
[{0}]
+jaasRealm.loginException=Excepción de Login autenticando nombre de usuario 
[{0}]
+jaasRealm.rolePrincipalAdd=Añadiend papel Principal [{0}] a los papeles de 
este usuario Principal
 jaasRealm.rolePrincipalFailure=No se han hallado papeles de Principal válidos.
 jaasRealm.rolePrincipalSuccess=hallado {0} papeles de Principal
 jaasRealm.unexpectedError=Error inesperado
 jaasRealm.userPrincipalFailure=No se ha hallado usuario Principal
-jaasRealm.userPrincipalSuccess=El Principal "{0}" es una clase válida de 
usuario. La vamos a usar como usuario Principal.
+jaasRealm.userPrincipalSuccess=El Principal [{0}] es una clase válida de 
usuario. La vamos a usar como usuario Principal.
 
-jdbcRealm.authenticateFailure=El usuario {0} NO ha sido autentificado 
correctamente
-jdbcRealm.authenticateSuccess=El usuario {0} ha sido autentificado 
correctamente
+jdbcRealm.authenticateFailure=El usuario [{0}] NO ha sido autentificado 
correctamente
+jdbcRealm.authenticateSuccess=El usuario [{0}] ha sido autentificado 
correctamente
 jdbcRealm.close=Excepción al cerrar la conexión a la base de datos
 jdbcRealm.exception=Excepción al realizar la autentificación
 jdbcRealm.getPassword.exception=Excepción recuperando contraseña para "{0}"
 jdbcRealm.getRoles.exception=Excepción recuperando papeles para "{0}"
 jdbcRealm.open=Excepción abriendo la conexión a la base de datos
-jdbcRealm.open.invalidurl=El conductor "{0}" no soporta la url "{1}"
+jdbcRealm.open.invalidurl=El conductor [{0}] no soporta la url [{1}]
 
-jndiRealm.authenticateFailure=Autentificación fallida para el usuario {0}
-jndiRealm.authenticateSuccess=Autentificación correcta para el usuario {0}
+jndiRealm.authenticateFailure=Autentificación fallida para el usuario [{0}]
+jndiRealm.authenticateSuccess=Autentificación correcta para el usuario [{0}]
 jndiRealm.close=Excepción al cerrar la conexión al servidor de directorio
 jndiRealm.exception=Excepción al realizar la autentificación
 jndiRealm.open=Excepción al abrir la conexión al servidor de directorio
 
-lockOutRealm.authLockedUser=Se ha intentado autentica al usuario bloqueado 
"{0}"
-lockOutRealm.removeWarning=Se ha quitado al usuario "{0}" de la caché de 
usuarios fallidos tras {1} secgundos para mantener la medida de caché dentro de 
los límites
+lockOutRealm.authLockedUser=Se ha intentado autenticar al usuario bloqueado 
[{0}]
+lockOutRealm.removeWarning=Se ha quitado al usuario [{0}] de la caché de 
usuarios fallidos tras [{1}] secgundos para mantener la medida de caché dentro 
de los límites
 
-memoryRealm.authenticateFailure=Autentificación fallida para el usuario {0}
-memoryRealm.authenticateSuccess=Autentificación correcta para el usuario {0}
-memoryRealm.loadExist=El fichero de usuarios {0} no ha podido ser leído
-memoryRealm.loadPath=Cargando los usuarios desde el fichero {0}
+memoryRealm.authenticateFailure=Autentificación fallida para el usuario [{0}]
+memoryRealm.authenticateSuccess=Autentificación correcta para el usuario [{0}]
+memoryRealm.loadExist=El fichero de usuarios [{0}] no ha podido ser leído
+memoryRealm.loadPath=Cargando los usuarios desde el fichero [{0}]
 memoryRealm.readXml=Excepción mientras se leía el fichero de usuarios
 memoryRealm.xmlFeatureEncoding=Excepción al configurar resumidor para permitir 
nombres con codificación java en ficheros XML. Sóllo se soportan nombres con 
codificación IANA.
 
-realmBase.algorithm=El algoritmo resumen (digest) {0} es inválido
+realmBase.algorithm=El algoritmo resumen (digest) [{0}] es inválido
 realmBase.alreadyStarted=Este dominio ya ha sido inicializado
-realmBase.authenticateFailure=Nombre de usuario {0} NO autenticado con éxito
-realmBase.authenticateSuccess=Nombre de usuario {0} autenticado con éxito
+realmBase.authenticateFailure=Nombre de usuario [{0}] NO autenticado con éxito
+realmBase.authenticateSuccess=Nombre de usuario [{0}] autenticado con éxito
+realmBase.createUsernameRetriever.ClassCastException=La clase [{0}] no es una 
X509UsernameRetriever.
 realmBase.delegatedCredentialFail=No pude obtener credenciales de delegado 
para el usuario [{0}]
 realmBase.digest=Error procesando las credenciales del usuario
 realmBase.forbidden=El acceso al recurso pedido ha sido denegado
 realmBase.gssNameFail=No pude extraer el nombre desde el GSSContext establecido
-realmBase.hasRoleFailure=El usuario {0} NO desempeña el papel de {1}
-realmBase.hasRoleSuccess=El usuario {0} desempeña el papel de {1}
+realmBase.hasRoleFailure=El usuario [{0}] NO desempeña el papel de [{1}]
+realmBase.hasRoleSuccess=El usuario [{0}] desempeña el papel de [{1}]
 realmBase.notAuthenticated=Error de Configuración: No se pueden realizar 
funciones de control de acceso sin un principal autentificado
 realmBase.notStarted=Este dominio aún no ha sido inicializado
 
 userDatabaseRealm.authenticateError=Error de configuración de Login 
autenticando nombre de usuario {0}
-userDatabaseRealm.lookup=Excepción buscando en Base de datos de Usuario 
mediante la clave {0}
-userDatabaseRealm.noDatabase=No se ha hallado componente de Base de datos de 
Usuario mediante la clave {0}
+userDatabaseRealm.lookup=Excepción buscando en Base de datos de Usuario 
mediante la clave [{0}]
+userDatabaseRealm.noDatabase=No se ha hallado componente de Base de datos de 
Usuario mediante la clave [{0}]
 userDatabaseRealm.noEngine=No se ha hallado componente de Motor en jerarquía 
de contenedor
 userDatabaseRealm.noGlobal=No se ha hallado contexto de recursos globales JNDI
diff --git a/java/org/apache/catalina/session/LocalStrings_es.properties 
b/java/org/apache/catalina/session/LocalStrings_es.properties
index 1ab4e14..dbb680b 100644
--- a/java/org/apache/catalina/session/LocalStrings_es.properties
+++ b/java/org/apache/catalina/session/LocalStrings_es.properties
@@ -13,49 +13,53 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-JDBCStore.SQLException=Error SQL {0}
-JDBCStore.checkConnectionClassNotFoundException=No se ha hallado la clase del 
manejador (driver) JDBC {0}
+JDBCStore.SQLException=Error SQL [{0}]
+JDBCStore.checkConnectionClassNotFoundException=No se ha hallado la clase del 
manejador (driver) JDBC [{0}]
 JDBCStore.checkConnectionDBClosed=La conexióna a base de datos es nula o está 
cerrada. Intentando reabrirla.
 JDBCStore.checkConnectionDBReOpenFail=Falló la reapertura de la base de datos. 
Puede que la base de datos esté caída.
-JDBCStore.checkConnectionSQLException=Ha tenido lugar una excepción SQL {0}
-JDBCStore.close=Excepción cerrando conexión a base de datos {0}
-JDBCStore.loading=Cargando Sesión {0} desde base de datos {1}
-JDBCStore.removing=Quitando Sesión {0} en base de datos {1}
-JDBCStore.saving=Salvando Sesión {0} en base de datos {1}
+JDBCStore.checkConnectionSQLException=Ha tenido lugar una excepción SQL [{0}]
+JDBCStore.close=Excepción cerrando conexión a base de datos [{0}]
+JDBCStore.loading=Cargando Sesión [{0}] desde base de datos [{1}]
+JDBCStore.missingDataSourceName=No se proporcionó un nombre JNDI válido
+JDBCStore.removing=Quitando Sesión [{0}] en base de datos [{1}]
+JDBCStore.saving=Salvando Sesión [{0}] en base de datos [{1}]
 
 applicationSession.session.ise=estado inválido de sesión
 applicationSession.value.iae=valor nulo
 
-fileStore.loading=Cargando Sesión {0} desde archivo {1}
-fileStore.removing=Quitando Sesión {0} en archivo {1}
-fileStore.saving=Salvando Sesión {0} en archivo {1}
+fileStore.loading=Cargando Sesión [{0}] desde archivo [{1}]
+fileStore.removing=Quitando Sesión [{0}] en archivo [{1}]
+fileStore.saving=Salvando Sesión [{0}] en archivo [{1}]
 
 managerBase.createSession.ise=createSession: Demasiadas sesiones activas
-managerBase.sessionTimeout=Valor inválido de Tiempo Agotado de sesión {0}
+managerBase.sessionTimeout=Valor inválido de Tiempo Agotado de sesión [{0}]
+managerBase.setContextNotNew=Es ilegal llamar a setContext() para cambiar el 
Contexto associado con un Manejador si el Manejador no esta en el estado NEW.
 
 persistentManager.activeSession=La sesión {0} ha estado ociosa durante {1} 
segundos
 persistentManager.backupException=Ha tenido lugar una excepción al respaldar 
la Sesión {0}: {1}
-persistentManager.backupMaxIdle=Respaldando sesión {0} a Almacén, ociosa 
durante {1} segundos
-persistentManager.deserializeError=Error des-serializando Sesión {0}: {1}
+persistentManager.backupMaxIdle=Respaldando sesión [{0}] a Almacén, ociosa 
durante [{1}] segundos
+persistentManager.deserializeError=Error des-serializando Sesión [{0}]: [{1}]
 persistentManager.expiring=Expirando {0} sesiones antes de salvarlas
-persistentManager.loading=Cargando {0} sesiones persistidas
+persistentManager.loading=Cargando [{0}] sesiones persistidas
 persistentManager.processSwaps=Mirando qué sesiones intercambiar a fuera, {0} 
sesiones activas en memoria
-persistentManager.serializeError=Error serializando Sesión {0}: {1}
-persistentManager.swapIn=Intercambiando sesión {0} a dentro desde Almacén
-persistentManager.swapMaxIdle=Intercambiando sesión {0} a fuera a Almacén, 
ociosa durante {1} segundos
-persistentManager.swapTooManyActive=Intercambiando sesión {0} a fuera, ociosa 
durante {1} segundos: Demasiadas sesiones activas
-persistentManager.tooManyActive=Demasiadas sesiones activas, {0}, buscando 
sesiones ociosas para intercambiar
-persistentManager.unloading=Salvando {0} sesiones persistidas
+persistentManager.serializeError=Error serializando Sesión [{0}]: [{1}]
+persistentManager.storeKeysException=Imposible determinar la lista de IDs de 
sesiones en la tienda de sesiones, asumiendo que la tienda esta vacia
+persistentManager.storeSizeException=No se puede determinar el numero de 
sesiones en el almacenamiento de sesiones, asumiendo que el almacenamiento esta 
vacío
+persistentManager.swapIn=Intercambiando sesión [{0}] a dentro desde Almacén
+persistentManager.swapMaxIdle=Intercambiando sesión [{0}] a fuera a Almacén, 
ociosa durante [{1}] segundos
+persistentManager.swapTooManyActive=Intercambiando sesión [{0}] a fuera, 
ociosa durante [{1}] segundos: Demasiadas sesiones activas
+persistentManager.tooManyActive=Demasiadas sesiones activas, [{0}], buscando 
sesiones ociosas para intercambiar
+persistentManager.unloading=Salvando [{0}] sesiones persistidas
 
 serverSession.value.iae=valor nulo
 
 standardManager.expireException=processsExpire: Excepción durante la 
expiración de sesión
-standardManager.loading=Cargando sesiones persistidas desde {0}
+standardManager.loading=Cargando sesiones persistidas desde [{0}]
 standardManager.loading.cnfe=ClassNotFoundException al cargar sesiones 
persistidas: {0}
 standardManager.loading.ioe=IOException al cargar sesiones persistidas: {0}
 standardManager.managerLoad=Excepción cargando sesiones desde almacenamiento 
persistente
 standardManager.managerUnload=Excepción descargando sesiones a almacenamiento 
persistente
-standardManager.unloading=Salvando sesiones persistidas a {0}
+standardManager.unloading=Salvando sesiones persistidas a [{0}]
 standardManager.unloading.ioe=IOException al salvar sesiones persistidas: {0}
 
 standardSession.attributeEvent=El oyente de eventos de atributo de Sesión 
lanzó una excepción
@@ -70,10 +74,10 @@ 
standardSession.getThisAccessedTime.ise=getThisAccessedTime: La Sesión ya ha si
 standardSession.getValueNames.ise=getValueNames: La Sesión ya ha sido 
invalidada
 standardSession.invalidate.ise=invalidate: La Sesión ya ha sido invalidada
 standardSession.isNew.ise=isNew: La Sesión ya ha sido invalidada
-standardSession.notSerializable=No puedo serializar atributo de sesión {0} 
para sesión {1}
+standardSession.notSerializable=No puedo serializar atributo de sesión [{0}] 
para sesión [{1}]
 standardSession.removeAttribute.ise=removeAttribute: La Sesión ya ha sido 
invalidada
 standardSession.sessionCreated=Creada Sesión id = {0}
 standardSession.sessionEvent=El oyente de evento de Sesión lanzó una execpción
-standardSession.setAttribute.iae=setAttribute: Atributo {0} no serializable
+standardSession.setAttribute.iae=setAttribute: Atributo [{0}] no serializable
 standardSession.setAttribute.ise=setAttribute: La Sesión ya ha sido invalidada
 standardSession.setAttribute.namenull=setAttribute: el nuevo parámetro no 
puede ser nulo
diff --git a/java/org/apache/catalina/startup/LocalStrings_es.properties 
b/java/org/apache/catalina/startup/LocalStrings_es.properties
index d712a0a..769eb3c 100644
--- a/java/org/apache/catalina/startup/LocalStrings_es.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_es.properties
@@ -14,32 +14,33 @@
 # limitations under the License.
 
 catalina.configFail=No pude cargar la configuración del servidor desde [{0}]
+catalina.serverStartFail=Tomcat no puede iniciar porque el componente Server 
requerido fallo al iniciar.
 catalina.shutdownHookFail=El gancho de apagado ha experimentado un error al 
intentar para el servidor
 catalina.stopServer=No se ha configurado puerto de apagado. Apagando el 
servidor a través de señal de SO. Servidor no apagado.
 
 contectConfig.baseError=No pude determinar $CATALINA_BASE
 
-contextConfig.altDDNotFound=fichero alt-dd {0} no hallado
+contextConfig.altDDNotFound=fichero alt-dd [{0}] no hallado
 contextConfig.applicationMissing=Falta el archivo web.xml de la aplicación. 
Utilizando los parámetros por defecto
-contextConfig.applicationParse=Error de evaluación (parse) en el archivo 
web.xml de la aplicación a {0}
-contextConfig.applicationPosition=Se ha producido en la línea {0} columna {1}
-contextConfig.applicationStart=Analizando fichero de aplicación web.xml en {0}
+contextConfig.applicationParse=Error de evaluación (parse) en el archivo 
web.xml de la aplicación a [{0}]
+contextConfig.applicationPosition=Se ha producido en la línea [{0}] columna 
[{1}]
+contextConfig.applicationStart=Analizando fichero de aplicación web.xml en 
[{0}]
 contextConfig.applicationUrl=No pude determinar la URL para la aplicación 
web.xml
-contextConfig.authenticatorConfigured=Configuración de un autentificador 
(authenticator) para el método {0}
-contextConfig.authenticatorInstantiate=Imposible de instanciar un autenticador 
(authenticator) para la clase {0}
-contextConfig.authenticatorMissing=Imposible de configurar un autentificador 
(authenticator) para el método {0}
+contextConfig.authenticatorConfigured=Configuración de un autentificador 
(authenticator) para el método [{0}]
+contextConfig.authenticatorInstantiate=Imposible de instanciar un autenticador 
(authenticator) para la clase [{0}]
+contextConfig.authenticatorMissing=Imposible de configurar un autentificador 
(authenticator) para el método [{0}]
 contextConfig.authenticatorResources=Imposible de cargar la lista de 
correspondencia de autenticadores (authenticators)
 contextConfig.badUrl=No pude procesar descriptor de contextor [{0}]
-contextConfig.cce=El objeto de los datos de evento de ciclo de vida (Lifecycle 
event data object) {0} no es un Contexto
-contextConfig.contextClose=Error cerrando context.xml: {0}
-contextConfig.contextMissing=Falta context.xml: {0}
-contextConfig.contextParse=Error de análisis en context.xml: {0}
-contextConfig.defaultError=Error al procesar web.xml por defecto con nombre 
{0} en {1}
+contextConfig.cce=El objeto de los datos de evento de ciclo de vida (Lifecycle 
event data object) [{0}] no es un Contexto
+contextConfig.contextClose=Error cerrando context.xml: [{0}]
+contextConfig.contextMissing=Falta context.xml: [{0}]
+contextConfig.contextParse=Error de análisis en context.xml: [{0}]
+contextConfig.defaultError=Error al procesar web.xml por defecto con nombre 
[{0}] en [{1}]
 contextConfig.defaultMissing=No se ha hallado web.xml global
-contextConfig.defaultPosition=Se ha producido en la línea {0} columna {1}
+contextConfig.defaultPosition=Se ha producido en la línea [{0}] columna [{1}]
 contextConfig.destroy=ContextConfig: Destruyendo
 contextConfig.fileUrl=No puedo crear un objeto Fichero desde la URL [{0}]
-contextConfig.fixDocBase=Excepción arreglando docBase: {0}
+contextConfig.fixDocBase=Excepción arreglando docBase: [{0}]
 contextConfig.init=ContextConfig: Inicializando
 contextConfig.inputStreamFile=No puedo procesar el fichero [{0}] para las 
anotaciones
 contextConfig.inputStreamJar=No puedo procesar la entrada de Jar [{0}] desde 
el Jar [{1}] para las anotaciones
@@ -50,49 +51,53 @@ contextConfig.jar=No puedo crear el recurso [{0}] para las 
anotaciones
 contextConfig.jarUrl=La conexión creada para la URL [{0}] no era una 
JarUrlConnection
 contextConfig.jndiUrl=No puedo procesar la URL JNDI [{0}] para las anotaciones
 contextConfig.jndiUrlNotDirContextConn=La conexión creada para la URL [{0}] no 
era una DirContextURLConnection
-contextConfig.jspFile.error=El archivo JSP {0} debe de comenzar con ''/''
-contextConfig.jspFile.warning=AVISO: El archivo JSP {0} debe de comenzar con 
''/'' en Servlet 2.4
+contextConfig.jspFile.error=El archivo JSP [{0}] debe de comenzar con ''/''
+contextConfig.jspFile.warning=AVISO: El archivo JSP [{0}] debe de comenzar con 
''/'' en Servlet 2.4
 contextConfig.missingRealm=Algún reino (realm) no ha sido configurado para 
realizar la autenticación
+contextConfig.processAnnotationsDir.debug=Escaneando el directorio por 
archivos de clase con anotaciones [{0}]\n
 contextConfig.resourceJarFail=Hallado JAR fallido a los procesos en URL [{0}] 
para recursos estáticos a ser incluidos en contexto con nombre [{0}]
-contextConfig.role.auth=El nombre de papel de seguridad {0} es usado en un 
<auth-constraint> sin haber sido definido en <security-role>
-contextConfig.role.link=El nombre de papel de seguridad {0} es usado en un 
<role-link> sin haber sido definido en <security-role>
-contextConfig.role.runas=El nombre de papel de seguridad {0} es usado en un 
<run-as> sin haber sido definido en <security-role>
+contextConfig.role.auth=El nombre de papel de seguridad [{0}] es usado en un 
<auth-constraint> sin haber sido definido en <security-role>
+contextConfig.role.link=El nombre de papel de seguridad [{0}] es usado en un 
<role-link> sin haber sido definido en <security-role>
+contextConfig.role.runas=El nombre de papel de seguridad [{0}] es usado en un 
<run-as> sin haber sido definido en <security-role>
 contextConfig.servletContainerInitializerFail=Hallado JAR fallido a proceso en 
URL [{0}] para ServletContainerInitializers para el contexto con nombre [{1}]
 contextConfig.start="ContextConfig": Procesando "START"
 contextConfig.stop="ContextConfig": Procesando "STOP"
 contextConfig.unavailable=Esta aplicación está marcada como no disponible 
debido a los errores precedentes
 contextConfig.unknownUrlProtocol=El protocolo de URL [{0}] no fue reconocido 
durante el proceso de anotaciones. Se ignoró la URL [{1}].
-contextConfig.urlPatternValue=Ambis valores de urlPatterns y atributo fuerno 
puestos para anotación de {0} de la clase [{1}]
+contextConfig.urlPatternValue=Ambis valores de urlPatterns y atributo fuerno 
puestos para anotación de [{0}] de la clase [{1}]
 contextConfig.webinfClassesUrl=No pude determinar la URL para WEB-INF/classes
-contextConfig.xmlSettings=El contexto [{0}] analizará los ficheros web.xml y 
web-fragment.xml con validación:{1} y namespaceAware:{2}
+contextConfig.xmlSettings=El contexto [{0}] analizará los ficheros web.xml y 
web-fragment.xml con validación:[{1}] y namespaceAware:[{2}]
 
 embedded.authenticatorNotInstanceOfValve=El Autenticado especificado no es un 
Válvula
 embedded.noEngines=Algún motor (engine) no ha sido aún definido
-embedded.notmp=No puedo hallar carpeta temporal especificada en {0}
+embedded.notmp=No puedo hallar carpeta temporal especificada en [{0}]
 
-engineConfig.cce=El objeto de los datos de evento de ciclo de vida (Lifecycle 
event data object) {0} no es un motor (engine)
+engineConfig.cce=El objeto de los datos de evento de ciclo de vida (Lifecycle 
event data object) [{0}] no es un motor (engine)
 engineConfig.start="EngineConfig": Procesando "START"
 engineConfig.stop="EngineConfig": Procesando "STOP"
 
-expandWar.copy=Error copiando {0} a {1}
+expandWar.copy=Error copiando [{0}] a [{1}]
+expandWar.createFailed=No se pudo crear el directorio [{0}]
 expandWar.deleteFailed=[{0}] no pudo ser completamente borrado. La presencia 
de los ficheros restantes puede causar problemas
 expandWar.illegalPath=The archive [{0}] is malformed and will be ignored: an 
entry contains an illegal path [{1}] which was not expanded to [{2}] since that 
is outside of the defined docBase [{3}]
 
 hostConfig.canonicalizing=Error al borrar redespliegue de recursos desde 
contexto [{0}]
-hostConfig.cce=El objeto de los datos de evento de ciclo de vida (Lifecycle 
event data object) {0} no es una máquina (host)
+hostConfig.cce=El objeto de los datos de evento de ciclo de vida (Lifecycle 
event data object) [{0}] no es una máquina (host)
 hostConfig.context.remove=Error al quitar contexto [{0}]
-hostConfig.context.restart=Error durante el arranque del contexto {0}
-hostConfig.createDirs=No puedo crear directorio para despliegue: {0}
+hostConfig.context.restart=Error durante el arranque del contexto [{0}]
+hostConfig.createDirs=No puedo crear directorio para despliegue: [{0}]
 hostConfig.deploy=Desplieque del directorio {0} de la aplicación web
 hostConfig.deploy.error=Excepción en el directorio {0} de la aplicación web
-hostConfig.deployDescriptor=Desplieque del descriptor de configuración {0}
-hostConfig.deployDescriptor.error=Error durante el despliegue del descriptor 
de configuración {0}
-hostConfig.deployDescriptor.localDocBaseSpecified=Se ha especificado un 
docBase {0} dentro del appBase de la máquina y será ignorado
-hostConfig.deployDir=Despliegue del directorio {0} de la aplicación web
-hostConfig.deployDir.error=Error durante el despliegue del directorio {0} de 
la aplicación web
-hostConfig.deployWar=Despliegue del archivo {0} de la aplicación web
-hostConfig.deployWar.error=Error durante el despliegue del archivo {0} de la 
aplicación web
+hostConfig.deployDescriptor=Desplieque del descriptor de configuración [{0}]
+hostConfig.deployDescriptor.error=Error durante el despliegue del descriptor 
de configuración [{0}]
+hostConfig.deployDescriptor.localDocBaseSpecified=Se ha especificado un 
docBase [{0}] dentro del appBase de la máquina y será ignorado
+hostConfig.deployDir=Desplegando el directorio [{0}] de la aplicación web
+hostConfig.deployDir.error=Error durante el despliegue del directorio [{0}] de 
la aplicación web
+hostConfig.deployWar=Despliegue del archivo [{0}] de la aplicación web
+hostConfig.deployWar.error=Error durante el despliegue del archivo [{0}] de la 
aplicación web
+hostConfig.deployWar.hiddenDir=El directorio [{0}] será ignorado debido a que 
el WAR [{1}] tiene prioridad y  unpackWARs es falso
 hostConfig.deploying=Desplegando aplicaciones web descubiertas
+hostConfig.docBaseUrlInvalid=El docBase proporcionado no puede ser expresado 
como una URL
 hostConfig.expand=Descompresión del archivo {0} de la aplicación web
 hostConfig.expand.error=Excepción durante la descompresión del archivo {0} de 
la aplicación web
 hostConfig.expanding=Descubierta descompresión de archivos de aplicaciones web
@@ -106,7 +111,7 @@ hostConfig.removeWAR=El War [{0}] está replegado
 hostConfig.removeXML=El context [{0}] está replegado
 hostConfig.start="HostConfig": Procesando "START"
 hostConfig.stop="HostConfig": Procesando "STOP"
-hostConfig.undeploy=Repliegue (undeploy) de la aplicación web que tiene como 
trayectoria de contexto {0}
+hostConfig.undeploy=Repliegue (undeploy) de la aplicación web que tiene como 
trayectoria de contexto [{0}]
 hostConfig.undeploy.error=Error durante el repliegue (undeploy) de la 
aplicación web que tiene como trayectoria de contexto {0}
 
 tldConfig.addListeners=Añadiendo {0} oyentes desde ficheros TLD
@@ -123,12 +128,20 @@ tldConfig.webxmlSkip=La ruta [{1}] saltada desde URI 
[{0}] es un duplicado
 tldConfig.webxmlStart=Explorando elementos <taglib> en web.xml
 
 userConfig.database=Excepción durante la carga de base de datos de usuario
-userConfig.deploy=Despliegue de la aplicación web para el usuario {0}
+userConfig.deploy=Despliegue de la aplicación web para el usuario [{0}]
 userConfig.deploying=Desplegando aplicaciones web para el usuario
-userConfig.error=Error durante el despliegue de la aplicación web para el 
usario {0}
-userConfig.start="UserConfig": Tratamiento del "START"
+userConfig.error=Error durante el despliegue de la aplicación web para el 
usario [{0}]
+userConfig.start="UserConfig": Procesando "START"
 userConfig.stop="UserConfig": Tratamiento del "STOP"
 
+versionLoggerListener.os.arch=Arquitectura:          {0}\n
+versionLoggerListener.os.version=Versión de Systema Operativo:      {0}\n
+versionLoggerListener.serverInfo.server.number=Número de versión de servidor:  
       {0}
+versionLoggerListener.serverInfo.server.version=Nombre de la versión del 
servidor:   {0}\n
+versionLoggerListener.vm.vendor=Vededor JVM:     {0}
+
+webAnnotationSet.invalidInjection=El método de inyección de anotación no es un 
recurso válido
+
 webRuleSet.absoluteOrdering=Elemento <absolute-ordering> no válido en 
web-fragment.xml y será ignorado
 webRuleSet.relativeOrdering=elemento <ordering> no válido en web.xml y será 
ignorado
 
diff --git a/java/org/apache/catalina/users/LocalStrings_es.properties 
b/java/org/apache/catalina/users/LocalStrings_es.properties
index 5483cdb..6ca3163 100644
--- a/java/org/apache/catalina/users/LocalStrings_es.properties
+++ b/java/org/apache/catalina/users/LocalStrings_es.properties
@@ -13,12 +13,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+memoryUserDatabase.fileNotFound=El usuario de base de datos especificado [{0}] 
no pudo ser encontrado
 memoryUserDatabase.notPersistable=La base de datos de usuario no es 
persistible - no hay permisos de grabación sobre el directorio
 memoryUserDatabase.nullGroup=Se ha especificado un nombre de grupo nulo o de 
tamaño cero. Se ignora el grupo.
 memoryUserDatabase.nullRole=Se ha especificado un nombre rol nulo o de tamaño 
cero. Se ignora el rol.
 memoryUserDatabase.nullUser=Se ha especificado un nombre de usuario nulo o de 
tamaño cero. Se ignora el usuario.
 memoryUserDatabase.readOnly=User database has been configured to be read only. 
Changes cannot be saved
-memoryUserDatabase.renameNew=Imposible de renombrar el archivo nuevo a {0}
-memoryUserDatabase.renameOld=Imposible de renombrar el archivo original a {0}
-memoryUserDatabase.writeException=IOException durante la escritura hacia {0}
+memoryUserDatabase.renameNew=Imposible de renombrar el archivo nuevo a [{0}]
+memoryUserDatabase.renameOld=Imposible de renombrar el archivo original a [{0}]
+memoryUserDatabase.writeException=IOException durante la escritura hacia [{0}]
 memoryUserDatabase.xmlFeatureEncoding=Excepción al configurar el resumidor 
para permitir nombres codificados en java en los ficheros XML. Sólo se 
soportarán los nombres con codificación IANA.
diff --git a/java/org/apache/catalina/util/LocalStrings_es.properties 
b/java/org/apache/catalina/util/LocalStrings_es.properties
index c56eb4b..d7fc052 100644
--- a/java/org/apache/catalina/util/LocalStrings_es.properties
+++ b/java/org/apache/catalina/util/LocalStrings_es.properties
@@ -15,16 +15,25 @@
 
 SecurityUtil.doAsPrivilege=Una excepción se ha producido durante la ejecución 
del bloque PrivilegedExceptionAction.
 
-extensionValidator.extension-not-found-error=ExtensionValidator[{0}][{1}]: La 
extensión no encuentra el "{2}" requerido.
-extensionValidator.extension-validation-error=ExtensionValidator[{0}]: 
Imposible de hallar la(s) extension(es) {1} requerida(s).
-extensionValidator.failload=No pude cargar la extensión {0}
+customObjectInputStream.logRequired=Se requiere un logeador váliso para el 
nombre de la clase filtrado con logeo
+customObjectInputStream.nomatch=La clase  [{0}] no concuerda con la expresión 
regular [{1}] para clases que tienen permitido el deserializamiento
+
+extensionValidator.extension-not-found-error=ExtensionValidator[{0}][{1}]: La 
extensión no encuentra el [{2}] requerido.
+extensionValidator.extension-validation-error=ExtensionValidator[{0}]: 
Imposible de hallar la(s) extension(es) [{1}] requerida(s).
+extensionValidator.failload=No pude cargar la extensión [{0}]
 extensionValidator.web-application-manifest=Manifiesto de Aplicación Web
 
 hexUtil.bad=Dígito hexadecimal incorrecto
 hexUtil.odd=Número de dígitos hexadecimales impar
 
+introspection.classLoadFailed=Fallo al cargar la clase [{0}]
+
+lifecycleBase.initFail=Fallo al iniciar el componente [{0}]
+
+netmask.cidrNegative=El CIDR [{0}] es negativo
+
 parameterMap.locked=No se permiten modificaciones en un ParameterMap bloqueado
 
 resourceSet.locked=No se permiten modificaciones en un ResourceSet bloqueado
 
-sessionIdGeneratorBase.random=Excepción inicializando generador de números 
aleatorios de clase {0}
+sessionIdGeneratorBase.random=Excepción inicializando generador de números 
aleatorios de clase [{0}]
diff --git a/java/org/apache/catalina/valves/LocalStrings_es.properties 
b/java/org/apache/catalina/valves/LocalStrings_es.properties
index 0ff392f..8e07186 100644
--- a/java/org/apache/catalina/valves/LocalStrings_es.properties
+++ b/java/org/apache/catalina/valves/LocalStrings_es.properties
@@ -14,50 +14,66 @@
 # limitations under the License.
 
 accessLogValve.closeFail=No pude cerrar fichero de historial
+accessLogValve.invalidLocale=Fallo al fijar locales a [{0}]\n
 accessLogValve.openDirFail=No pude crear directorio [{0}] para historiales de 
acceso
-accessLogValve.rotateFail=No pude rotar historial de acceso
+accessLogValve.openFail=Fallo al abrir el archivo access log [{0}]\n
+accessLogValve.rotateFail=No se pudo rotar el historial de acceso
 
 cometConnectionManagerValve.event=Excepción procesando evento
 cometConnectionManagerValve.listenerEvent=Excepción procesando evento de 
oyente de sesión
 
-errorReportValve.description=descripción
+errorReportValve.description=Descripción
 errorReportValve.exception=excepción
 errorReportValve.exceptionReport=Informe de Excepción
 errorReportValve.message=mensaje
 errorReportValve.note=nota
 errorReportValve.rootCause=causa raíz
-errorReportValve.rootCauseInLogs=La traza completa de la causa de este error 
se encuentra en los archivos de diario del servidor.
+errorReportValve.rootCauseInLogs=La traza completa de la causa de este error 
se encuentra en los archivos de registro del servidor.
 errorReportValve.statusHeader=Estado HTTP {0} – {1}
 errorReportValve.statusReport=Informe de estado
 errorReportValve.type=Tipo
 
 http.400.desc=El requerimiento enviado por el cliente era sintácticamente 
incorrecto.
 http.401.desc=Este requerimiento requiere autenticación HTTP.
-http.402.desc=Se requiere pago para acceder a este recurso.
+http.401.reason=No autorizado
+http.402.desc=Este código de estado está reservado para uso futuro.
 http.403.desc=El acceso al recurso especificado ha sido prohibido.
 http.404.desc=El recurso requerido no está disponible.
+http.404.reason=No encontrado
 http.405.desc=El método HTTP especificado no está permitido para el recurso 
requerido.
 http.406.desc=El recurso identificado por este requerimiento sólo es capaz de 
generar respuestas con características no aceptables con arreglo a las 
cabeceras "accept" de requerimiento.
 http.407.desc=El cliente debe de ser primero autenticado en el apoderado.
+http.407.reason=Se requiere autenticación de proxy
 http.408.desc=El cliente no produjo un requerimiento dentro del tiempo en que 
el servidor estaba preparado esperando.
 http.409.desc=El requerimiento no pudo ser completado debido a un conflicto 
con el estado actual del recurso.
 http.410.desc=El recurso requerido ya no está disponible y no se conoce 
dirección de reenvío.
 http.411.desc=Este requerimiento no puede ser manejado sin un tamaño definido 
de contenido.
 http.412.desc=Una precondición especificada ha fallado para este requerimiento.
+http.412.reason=La precon
 http.413.desc=La entidad de requerimiento es mayor de lo que el servidor 
quiere o puede procesar.
 http.414.desc=El servidor rechazó este requerimiento porque la URI requerida 
era demasiado larga.
 http.415.desc=El servidor rechazó este requerimiento porque la entidad 
requerida se encuentra en un formato no soportado por el recurso requerido para 
el método requerido.
+http.415.reason=Tipo de medio no soportado
 http.416.desc=El rango de byte requerido no puede ser satisfecho.
 http.417.desc=Lo que se espera dado por la cabecera "Expect" de requerimiento 
no pudo ser completado.
+http.421.desc=La solicitud ha sido dirigida a un servidor que no fue capaz de 
producir una respuesta
 http.422.desc=El servidor entendió el tipo de contenido y la sintáxis del 
requerimiento pero no pudo procesar las instrucciones contenidas.
 http.423.desc=La fuente o recurso de destino de un método está bloqueada.
+http.423.reason=Bloqueado
+http.426.reason=Se requiere actualización
+http.428.desc=El servidor de origen requiere que la petición sea condicional
+http.429.reason=Demasiadas peticiones
+http.431.reason=Los campos de cabecera solicitados son muy largos
 http.500.desc=El servidor encontró un error interno que hizo que no pudiera 
rellenar este requerimiento.
 http.501.desc=El servidor no soporta la funcionalidad necesaria para rellenar 
este requerimiento.
 http.502.desc=Este servidor recibió una respuesta inválida desde un servidor 
que consultó cuando actuaba como apoderado o pasarela.
 http.503.desc=El servicio requerido no está disponible en este momento.
 http.504.desc=El servidor recibió un Tiempo Agotado desde un servidor superior 
cuando actuaba como pasarela o apoderado.
 http.505.desc=El servidor no soporta la versión de protocolo HTTP requerida.
+http.505.reason=Versión HTTP no soportada
 http.507.desc=El recurso no tiene espacio suficiente para registrar el estado 
del recurso tras la ejecución de este método.
+http.507.reason=El storage no es suficiente
+http.511.desc=El cliente se tiene que autenticar para tener accesso a la red
 
 jdbcAccessLogValve.close=Excepción cerrando conexión a base de datos
 jdbcAccessLogValve.exception=Excepción realizando entrada de acceso a inserción
@@ -65,13 +81,14 @@ jdbcAccessLogValve.exception=Excepción realizando entrada 
de acceso a inserció
 remoteIpValve.invalidPortHeader=Valor inválido [{0}] hallado para el puerto en 
cabecera HTTP [{1}]
 remoteIpValve.syntax=Se han suministrado expresiones regulares [{0}] no 
válidas.
 
+requestFilterValve.configInvalid=Uno o más parámetros de configuración 
inválidos fueron proveídos para  Remote[Addr|Host]Valve lo cual impide que el 
Valve y sus contenedores padres puedan iniciar
 requestFilterValve.next=No hay ''siguiente'' válvula configurada
 requestFilterValve.syntax=Error de sintáxis en petición de filtro patrón {0}
 
 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álido. No se pueden procesar 
los datos del certificado.
 
-stuckThreadDetectionValve.notifyStuckThreadCompleted=El hilo "{0}" (id={3}), 
que previamente se reportó como atascado, se ha completado. Estuvo activo por 
aproximadamente {1} milisegundos. {2, choice,0#|0< Hay aún {2} hilo(s) que son 
monitorizados por esta Válvula y pueden estar atascados.}
-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álvula y pueden estar atascados.
+stuckThreadDetectionValve.notifyStuckThreadCompleted=El hilo [{0}] (id=[{3}]), 
que previamente se reportó como atascado, se ha completado. Estuvo activo por 
aproximadamente [{1}] milisegundos. {2, choice,0#|0< Hay aún [{2}] hilo(s) que 
son monitorizados por esta Válvula y pueden estar atascados.}
+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álvula y pueden estar atascados.
 
 valveBase.noNext=Error de configuración: No hay ''siguiente'' válvula 
configurada
diff --git a/java/org/apache/coyote/LocalStrings_es.properties 
b/java/org/apache/coyote/LocalStrings_es.properties
index 2cff96d..d6389d4 100644
--- a/java/org/apache/coyote/LocalStrings_es.properties
+++ b/java/org/apache/coyote/LocalStrings_es.properties
@@ -14,3 +14,10 @@
 # limitations under the License.
 
 abstractConnectionHandler.error=Error leyendo requerimiento, ignorado
+
+abstractProcessor.fallToDebug=Nota: futuras ocurrencias de la solicitud the 
parseo de errores será logueada con nivel DEBUG.
+abstractProcessor.hostInvalid=El host [{0}] no es válido\n
+
+abstractProtocolHandler.init=Inicializando el manejador de protocolo [{0}]\n
+
+asyncStateMachine.invalidAsyncState=Llamando [{0}] no es una solicitud válida 
en el estado [{1}]\n
diff --git a/java/org/apache/coyote/ajp/LocalStrings_es.properties 
b/java/org/apache/coyote/ajp/LocalStrings_es.properties
index cc0bb47..52473e6 100644
--- a/java/org/apache/coyote/ajp/LocalStrings_es.properties
+++ b/java/org/apache/coyote/ajp/LocalStrings_es.properties
@@ -13,9 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-ajpmessage.invalid=Mensaje inválido recibido con firma {0}
+ajpmessage.invalid=Mensaje inválido recibido con firma [{0}]
 ajpmessage.null=No puedo añadir valor nulo
-ajpmessage.overflow=Error de desbordamiento en búfer al añadir {0} bytes en 
posición {1}
+ajpmessage.overflow=Error de desbordamiento en búfer al añadir [{0}] bytes en 
posición [{1}]
 ajpmessage.read=Los {0} bytes requeridos exceden los datos disponibles de 
mensaje
 
 ajpprocessor.certs.fail=Fallo en conversión de Certificado
diff --git a/java/org/apache/coyote/http11/LocalStrings_es.properties 
b/java/org/apache/coyote/http11/LocalStrings_es.properties
index 23b5525..225bdf0 100644
--- a/java/org/apache/coyote/http11/LocalStrings_es.properties
+++ b/java/org/apache/coyote/http11/LocalStrings_es.properties
@@ -19,7 +19,7 @@ http11processor.header.parse=Error analizando cabecera de 
requerimiento HTTP
 http11processor.neverused=Este método no debería de usarse nunca
 http11processor.regexp.error=Error al analizar expresión regular {0}
 http11processor.request.finish=Error acabando requerimiento
-http11processor.request.prepare=Error preparando requerimiento
+http11processor.request.prepare=Error preparando solicitud
 http11processor.request.process=Error procesando requerimiento
 http11processor.response.finish=Error acabando respuesta
 http11processor.socket.info=Excepción obteniendo información de conector
@@ -36,5 +36,8 @@ http11protocol.proto.socketexception.info=SocketException 
leyendo requerimiento,
 http11protocol.start=Arrancando Coyote HTTP/1.1 en puerto {0}
 
 iib.eof.error=Inesperado Fin De Archivo (EOF) leído en el enchufe (socket)
-iib.invalidmethod=Carácter inválido (CR o LF) hallado en el nombre del método
+iib.invalidmethod=Se encontró un carácter inválido en el nombre del método. 
Los nombres de métodos HTTP deben ser tokens
+iib.parseheaders.ise.error=Estado inesperado: las cabeceras ya fueron 
parseadas. No se ha reciclado el buffer??
 iib.requestheadertoolarge.error=La cabecera del requerimiento es demasido 
grande
+
+iob.responseheadertoolarge.error=Un intento para escribir más datos en las 
cabeceras de respuesta escribir fue hecho, sin embargo no hay más espacio 
disponible en el bufer. Aumente el parámetro maxHttpHeaderSize en el conector o 
escribe menos datos en las respuestas de las cabeceras.\n
diff --git a/java/javax/servlet/LocalStrings_es.properties 
b/java/org/apache/coyote/http11/filters/LocalStrings_es.properties
similarity index 73%
copy from java/javax/servlet/LocalStrings_es.properties
copy to java/org/apache/coyote/http11/filters/LocalStrings_es.properties
index 604e94c..0bd142c 100644
--- a/java/javax/servlet/LocalStrings_es.properties
+++ b/java/org/apache/coyote/http11/filters/LocalStrings_es.properties
@@ -13,11 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-err.not_iso8859_1=No es un carácter ISO 8859-1: {0}
-
-httpConstraintElement.invalidRolesDeny=No se pueden especificar Roles al 
utilizar DENY (DENEGAR)
-
-httpMethodConstraintElement.invalidMethod=Método HTTP inválido
-
-value.false=false
-value.true=true
+chunkedInputFilter.eos=Fin del flujo inesperado mientras se leía la petición 
del cuerpo
+chunkedInputFilter.eosTrailer=Fin inesperado de  stream mintras se leían las 
cabeceras finales
+chunkedInputFilter.invalidCrlfNoCR=Fin de linea incorrecto (CR no debe estar 
antes de LF)
diff --git a/java/org/apache/tomcat/util/threads/res/LocalStrings_es.properties 
b/java/org/apache/coyote/http11/upgrade/LocalStrings_es.properties
similarity index 79%
copy from java/org/apache/tomcat/util/threads/res/LocalStrings_es.properties
copy to java/org/apache/coyote/http11/upgrade/LocalStrings_es.properties
index 169f5a7..9d3b8de 100644
--- a/java/org/apache/tomcat/util/threads/res/LocalStrings_es.properties
+++ b/java/org/apache/coyote/http11/upgrade/LocalStrings_es.properties
@@ -13,4 +13,5 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-threadPoolExecutor.threadStoppedToAvoidPotentialLeak=Parando hilo {0} para 
evita fallos potenciales de memoria tras haberse parado un contexto.
+upgrade.sis.readListener.set=Es ilegal llamar a setReadListener() más de una 
vez para la misma conexión actualizada\n
+upgrade.sos.writeListener.null=Es ilegal pasar valor nulo a 
setWriteListener()\n
diff --git a/java/org/apache/jasper/resources/LocalStrings_es.properties 
b/java/org/apache/jasper/resources/LocalStrings_es.properties
index b72c2f8..85f099d 100644
--- a/java/org/apache/jasper/resources/LocalStrings_es.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_es.properties
@@ -34,8 +34,8 @@ jsp.error.attribute.unterminated=el atributo para [{0}] no 
está terminado corre
 jsp.error.bad.scratch.dir=El directorio de trabajo especificado: [{0}] no es 
utilizable.
 jsp.error.badStandardAction=Acción estándar incorrecta
 jsp.error.bad_attribute=El atributo [{0}] no es válido según el TLD 
especificado
-jsp.error.beans.nobeaninfo=No se puede encontrar BeanInfo para el bean  
''{0}'' seguramente la clase no existe
 jsp.error.bad_tag=No existe el tag [{0}] en la biblioteca importada con 
prefijo [{1}]
+jsp.error.beans.nobeaninfo=No se puede encontrar BeanInfo para el bean  
''{0}'' seguramente la clase no existe
 jsp.error.beans.nomethod=No puedo encontrar un método para leer la propiedad 
[{0}] en un bean del tipo [{1}]
 jsp.error.beans.nomethod.setproperty=No puedo encontrar un método para 
escribir la propiedad [{0}] en un bean del tipo [{2}]
 jsp.error.beans.noproperty=No puedo encontrar información de la propiedad 
[{0}] en un bean del tipo [{1}]
diff --git a/java/org/apache/tomcat/util/threads/res/LocalStrings_es.properties 
b/java/org/apache/tomcat/util/LocalStrings_es.properties
similarity index 78%
copy from java/org/apache/tomcat/util/threads/res/LocalStrings_es.properties
copy to java/org/apache/tomcat/util/LocalStrings_es.properties
index 169f5a7..bb96f4e 100644
--- a/java/org/apache/tomcat/util/threads/res/LocalStrings_es.properties
+++ b/java/org/apache/tomcat/util/LocalStrings_es.properties
@@ -13,4 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-threadPoolExecutor.threadStoppedToAvoidPotentialLeak=Parando hilo {0} para 
evita fallos potenciales de memoria tras haberse parado un contexto.
+diagnostics.threadDumpTitle=Volcado del hilo completo
+diagnostics.vmInfoClassCompilation=Compilación de clase
+diagnostics.vmInfoLogger=Información de logueo
+diagnostics.vmInfoSystem=Propiedades del sistema
diff --git a/java/org/apache/tomcat/util/buf/LocalStrings_es.properties 
b/java/org/apache/tomcat/util/buf/LocalStrings_es.properties
index 3037648..a513aca 100644
--- a/java/org/apache/tomcat/util/buf/LocalStrings_es.properties
+++ b/java/org/apache/tomcat/util/buf/LocalStrings_es.properties
@@ -14,3 +14,5 @@
 # limitations under the License.
 
 b2cConverter.unknownEncoding=La codificación de carácter [{0}] no está 
soportada
+
+uDecoder.convertHexDigit.notHex=[{0}] no es un número hexadecimal\n
diff --git a/java/org/apache/coyote/LocalStrings_es.properties 
b/java/org/apache/tomcat/util/compat/LocalStrings_es.properties
similarity index 86%
copy from java/org/apache/coyote/LocalStrings_es.properties
copy to java/org/apache/tomcat/util/compat/LocalStrings_es.properties
index 2cff96d..03b8f17 100644
--- a/java/org/apache/coyote/LocalStrings_es.properties
+++ b/java/org/apache/tomcat/util/compat/LocalStrings_es.properties
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-abstractConnectionHandler.error=Error leyendo requerimiento, ignorado
+jre9Compat.invalidModuleUri=El módulo URI proveído [{0}] no pudo ser 
convertiod a una URL para ser procesado por JarScanner
diff --git a/java/org/apache/tomcat/util/http/LocalStrings_es.properties 
b/java/org/apache/tomcat/util/http/LocalStrings_es.properties
new file mode 100644
index 0000000..84173e5
--- /dev/null
+++ b/java/org/apache/tomcat/util/http/LocalStrings_es.properties
@@ -0,0 +1,23 @@
+# 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.
+
+cookies.invalidCookieToken=Cookies: cookie no válida. El valor no es un token 
o un valor acotado
+
+parameters.copyFail=Fallo al crear copia de los valores orignales del 
parámetro para propósitos de debug
+parameters.decodeFail.debug=Fallo al decodificar el caracter. Parámetro [{0}] 
con valor [{1}] ha sido ignorado.\n
+parameters.fallToDebug=Nota: Futuras ocurrencias de error del Parámetro serán 
loggueadas a nivel DEBUG.\n
+parameters.maxCountFail=Se detectaron más del máximo número de los parámetros 
solicitados (GET plus POST) para una solicitud simple ([{0}]). Cualquier 
parámetro por encima de este límite ha sido ignorado. Para cambiar este límite, 
fije el atributo maxParameterCount attribute en el Conector.\n
+parameters.maxCountFail.fallToDebug=Nota: futuras ocurrencias de este tipo de 
error serán logueadas a  nivel DEBUG
+parameters.noequal=El parámetro que inicia en la posición [{0}] y termina en 
la posición [{1}] con valor de [{2}] no tiene un caracter  ''='' a continuación
diff --git a/java/javax/servlet/LocalStrings_es.properties 
b/java/org/apache/tomcat/util/http/parser/LocalStrings_es.properties
similarity index 63%
copy from java/javax/servlet/LocalStrings_es.properties
copy to java/org/apache/tomcat/util/http/parser/LocalStrings_es.properties
index 604e94c..a419227 100644
--- a/java/javax/servlet/LocalStrings_es.properties
+++ b/java/org/apache/tomcat/util/http/parser/LocalStrings_es.properties
@@ -13,11 +13,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-err.not_iso8859_1=No es un carácter ISO 8859-1: {0}
-
-httpConstraintElement.invalidRolesDeny=No se pueden especificar Roles al 
utilizar DENY (DENEGAR)
-
-httpMethodConstraintElement.invalidMethod=Método HTTP inválido
-
-value.false=false
-value.true=true
+http.illegalCharacterIpv4=El caracter  [{0}] nunca es válido en una dirección 
IPv4.\n
+http.illegalCharacterIpv6=El caracter [{0}] nunca es válido en una dirección 
IPv6.\n
+http.invalidHextet=Hextet no válido. Hextet debe consistir de 4 caracteres 
hexadecimales o menos.
+http.singleColonEnd=Una dirección IPv6 no puede terminar con solo un ':'.\n
+http.tooManyColons=Una dirección IPv6 no puede contener más de 2 caracteres  
":" seguidos
diff --git a/java/javax/servlet/LocalStrings_es.properties 
b/java/org/apache/tomcat/util/scan/LocalStrings_es.properties
similarity index 69%
copy from java/javax/servlet/LocalStrings_es.properties
copy to java/org/apache/tomcat/util/scan/LocalStrings_es.properties
index 604e94c..74e63b2 100644
--- a/java/javax/servlet/LocalStrings_es.properties
+++ b/java/org/apache/tomcat/util/scan/LocalStrings_es.properties
@@ -13,11 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-err.not_iso8859_1=No es un carácter ISO 8859-1: {0}
-
-httpConstraintElement.invalidRolesDeny=No se pueden especificar Roles al 
utilizar DENY (DENEGAR)
-
-httpMethodConstraintElement.invalidMethod=Método HTTP inválido
-
-value.false=false
-value.true=true
+jarScan.classloaderFail=Fallo al escanear  [{0}] desde la herarquia 
classloader hierarchy
+jarScan.classloaderJarNoScan=No se ejecutó el escaneo de JAR en el archivo  
[{0}] de la ruta de clase
+jarScan.webinflibJarNoScan=No se ejecutó escaneo JAR en el archivo [{0}] de 
/WEB-INF/lib\n
+jarScan.webinflibStart=Buscando JARs en /WEB-INF/lib
diff --git a/java/org/apache/tomcat/util/threads/res/LocalStrings_es.properties 
b/java/org/apache/tomcat/util/threads/res/LocalStrings_es.properties
index 169f5a7..694bee7 100644
--- a/java/org/apache/tomcat/util/threads/res/LocalStrings_es.properties
+++ b/java/org/apache/tomcat/util/threads/res/LocalStrings_es.properties
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-threadPoolExecutor.threadStoppedToAvoidPotentialLeak=Parando hilo {0} para 
evita fallos potenciales de memoria tras haberse parado un contexto.
+threadPoolExecutor.threadStoppedToAvoidPotentialLeak=Parando hilo [{0}] para 
evita fallos potenciales de memoria tras haberse parado un contexto.
diff --git a/java/org/apache/tomcat/websocket/LocalStrings_es.properties 
b/java/org/apache/tomcat/websocket/LocalStrings_es.properties
new file mode 100644
index 0000000..547bb22
--- /dev/null
+++ b/java/org/apache/tomcat/websocket/LocalStrings_es.properties
@@ -0,0 +1,44 @@
+# 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.
+
+caseInsensitiveKeyMap.nullKey=No se permiten llaves nulas (Null)
+
+perMessageDeflate.duplicateParameter=La definición del parámetro de extención  
[{0}] esta duplicada
+perMessageDeflate.invalidWindowSize=Una ventana inválida de tamaño  [{1}] fue 
especificada para [{0}]. Los valores válidos son números entre 8 y 15 
incluyendo los extremos.
+
+util.notToken=Un parámetro con extención ilegal fue especificado con nombre 
[{0}] y valor [{1}]
+util.unknownDecoderType=No se reconoce el decodificador tipo [{0}]
+
+wsFrame.closed=Nuevo cuadro recibido luego de cerrar el cuadro de control
+wsFrame.notMasked=El cuadro del cliente no fue enmascarado, pero todos los 
cuadros de clientes deben ser enmascarados
+wsFrame.wrongRsv=El rango del cliente fija los bits reservados a [{0}] para un 
mensaje con opCode [{1}] el cual no fue soportado por este endpoint\n
+
+wsHandshakeRequest.invalidUri=La cadena [{0}] no puede ser usada para 
construir una URI válida
+
+wsRemoteEndpoint.closed=El mensaje no será enviado porque la sesión WebSocket 
ha sido cerrada
+wsRemoteEndpoint.closedDuringMessage=No se enviara el resto del mensaje debido 
a que la sesión WebSocket esta cerrada
+wsRemoteEndpoint.flushOnCloseFailed=Los mensages de lote estan habilitados aún 
después de haberse cerrado la sesión. Imposible descartar los messages de lote 
restantes.
+wsRemoteEndpoint.tooMuchData=Ping o pong no pueden enviar más de 125 bytes
+wsRemoteEndpoint.wrongState=El endpoint remoto estaba en estado [{0}] el cual 
es un estado no válido para el método llamado
+
+wsSession.closed=La sesión WebSocket [{0}] ha sido cerrada y ningún otro 
método (aparte de  close()) puede ser llamado en una sesión cerrada\n
+wsSession.created=La sesion WebSocket  [{0}] fue creada\n
+wsSession.doClose=Cerrando WebSocket sesión [{1}]
+wsSession.duplicateHandlerText=Un manejador de mensaje de texto ya ha sido 
configurado
+wsSession.instanceNew=Falló la registración de la instancia del dispoitivo 
final
+
+wsWebSocketContainer.missingWWWAuthenticateHeader=Fallo al manejar el código 
de respuesta HTTP [{0}]. No existe la cabecera WWW-Authenticate en la respuesta
+wsWebSocketContainer.pathNoHost=No se especificó ningún host en URI
+wsWebSocketContainer.sessionCloseFail=La sesión con ID [{0}] no se cerró 
correctamente
diff --git a/java/javax/servlet/LocalStrings_es.properties 
b/java/org/apache/tomcat/websocket/server/LocalStrings_es.properties
similarity index 69%
copy from java/javax/servlet/LocalStrings_es.properties
copy to java/org/apache/tomcat/websocket/server/LocalStrings_es.properties
index 604e94c..14e6af2 100644
--- a/java/javax/servlet/LocalStrings_es.properties
+++ b/java/org/apache/tomcat/websocket/server/LocalStrings_es.properties
@@ -13,11 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-err.not_iso8859_1=No es un carácter ISO 8859-1: {0}
+serverContainer.configuratorFail=Fallo al crear configurador de tipo [{0}] 
para el POJO de tipo [{1}]
+serverContainer.pojoDeploy=Clase  POJO [{0}] desplegado en la ruta [{1}] en 
ServletContext [{2}]\n
 
-httpConstraintElement.invalidRolesDeny=No se pueden especificar Roles al 
utilizar DENY (DENEGAR)
+uriTemplate.invalidPath=El camino [{0}] no es válido.\n
 
-httpMethodConstraintElement.invalidMethod=Método HTTP inválido
-
-value.false=false
-value.true=true
+wsFrameServer.bytesRead=[{0}] leídos del bufer de entrada llistos para ser 
procesados
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 3462548..77bf673 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -160,6 +160,10 @@
         Back-port various corrections and improvements to the English versions
         of the i18n messages. (markt)
       </fix>
+      <fix>
+        Back-port various corrections and improvements to the Spanish i18n
+        messages. (markt)
+      </fix>
     </changelog>
   </subsection>
 </section>
diff --git a/webapps/examples/WEB-INF/classes/LocalStrings_es.properties 
b/webapps/examples/WEB-INF/classes/LocalStrings_es.properties
index 60a410e..eaac59a 100644
--- a/webapps/examples/WEB-INF/classes/LocalStrings_es.properties
+++ b/webapps/examples/WEB-INF/classes/LocalStrings_es.properties
@@ -36,7 +36,7 @@ requestparams.firstname=Nombre:
 requestparams.lastname=Apellidos:
 requestparams.no-params=No hay párametro. Por favor, usa alguno
 requestparams.params-in-req=Parámetros en este Request:
-requestparams.title=Ejemplo de parámetros de Requerimiento:
+requestparams.title=Ejemplo de solicitud con parámetros:
 
 sessions.adddata=Añade datos a tu sesión:
 sessions.created=Creado:


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to