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

hostManagerServlet.noCommand = FALLO - No se ha especificado comando
hostManagerServlet.unknownCommand = FALLO - Comando desconocido {0}
hostManagerServlet.noWrapper = El contenedor no ha llamado a setWrapper() para este servlet
hostManagerServlet.invalidHostName = FALLO - Se ha especificado un nombre inv\u00E1lido de m\u00E1quina {0}
hostManagerServlet.alreadyHost = FALLO - Ya existe m\u00E1quina con nombre de m\u00E1quina {0}
hostManagerServlet.managerXml = FALLO - no pude instalar manager.xml
hostManagerServlet.exception = FALLO - Encontrada excepci\u00F3n {0}
hostManagerServlet.add = OK - A\u00F1adida m\u00E1quina {0}
hostManagerServlet.addFailed = FALLO - No pude a\u00F1adir m\u00E1quina {0}
hostManagerServlet.cannotRemoveOwnHost = FALLO - No puedo quitar m\u00E1quina propia {0}
hostManagerServlet.remove = OK - Quitada m\u00E1quina {0}
hostManagerServlet.removeFailed = FALLO - No pude quitar m\u00E1quina {0}
hostManagerServlet.listed = OK - M\u00E1quinas listadas
hostManagerServlet.listitem = {0}\:{1}
hostManagerServlet.cannotStartOwnHost = FALLO - No puedo empezar m\u00E1quina propia {0}
hostManagerServlet.started = OK - M\u00E1quina {0} arrancada
hostManagerServlet.startFailed = FALLO - No pude arrancar m\u00E1quina {0}
hostManagerServlet.cannotStopOwnHost = FALLO - No puedo para m\u00E1quina propia {0}
hostManagerServlet.stopped = OK - M\u00E1quina {0} parada
hostManagerServlet.stopFailed = FALLO - No pude parar m\u00E1quina {0}
htmlHostManagerServlet.title = Gestor de M\u00E1quina Virtual de Tomcat
htmlHostManagerServlet.messageLabel = Mensaje\:
htmlHostManagerServlet.manager = Gestor de M\u00E1quina
htmlHostManagerServlet.list = Lista de M\u00E1quinas Virtuales
htmlHostManagerServlet.helpHtmlManagerFile = html-host-manager-howto.html
htmlHostManagerServlet.helpHtmlManager = Ayuda de Gestor de M\u00E1quina HTML (\u00A1En breve\!)
htmlHostManagerServlet.helpManagerFile = ../docs/host-manager-howto.html
htmlHostManagerServlet.helpManager = Ayuda de Gestor de M\u00E1quina
htmlHostManagerServlet.hostName = Nombre de M\u00E1quina
htmlHostManagerServlet.hostAliases = Aliases de M\u00E1quina
htmlHostManagerServlet.hostTasks = Comandos
htmlHostManagerServlet.hostsStart = Iniciar
htmlHostManagerServlet.hostsStop = Parar
htmlHostManagerServlet.hostsRemove = Quitar
htmlHostManagerServlet.addTitle = A\u00F1adir M\u00E1quina Virtual
htmlHostManagerServlet.addHost = M\u00E1quina
htmlHostManagerServlet.addName = Nombre\:
htmlHostManagerServlet.addAliases = Aliases\:
htmlHostManagerServlet.addAppBase = App base\:
htmlHostManagerServlet.addManager = App de Gestor
htmlHostManagerServlet.addAutoDeploy = AutoDeploy
htmlHostManagerServlet.addDeployOnStartup = DeployOnStartup
htmlHostManagerServlet.addDeployXML = DeployXML
htmlHostManagerServlet.addUnpackWARs = UnpackWARs
htmlHostManagerServlet.addButton = A\u00F1adir
htmlHostManagerServlet.serverTitle = Informaci\u00F3n de Servidor
htmlHostManagerServlet.serverVersion = Versi\u00F3n de Tomcat
htmlHostManagerServlet.serverJVMVersion = Versi\u00F3n de JVM
htmlHostManagerServlet.serverJVMVendor = Vendedor JVM
htmlHostManagerServlet.serverOSName = Nombre de SO
htmlHostManagerServlet.serverOSVersion = Versi\u00F3n de SO
htmlHostManagerServlet.serverOSArch = Arquitectura de SO
statusServlet.title = Estado de Servidor
statusServlet.complete = Completar Estado de Servidor
