# 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.
fileStore.saving = Salvando Sesi\u00F3n {0} en archivo {1}
fileStore.loading = Cargando Sesi\u00F3n {0} desde archivo {1}
fileStore.removing = Quitando Sesi\u00F3n {0} en archivo {1}
JDBCStore.close = Excepci\u00F3n cerrando conexi\u00F3n a base de datos {0}
JDBCStore.saving = Salvando Sesi\u00F3n {0} en base de datos {1}
JDBCStore.loading = Cargando Sesi\u00F3n {0} desde base de datos {1}
JDBCStore.removing = Quitando Sesi\u00F3n {0} en base de datos {1}
JDBCStore.SQLException = Error SQL {0}
JDBCStore.checkConnectionDBClosed = La conexi\u00F3na a base de datos es nula o est\u00E1 cerrada. Intentando reabrirla.
JDBCStore.checkConnectionDBReOpenFail = Fall\u00F3 la reapertura de la base de datos. Puede que la base de datos est\u00E9 ca\u00EDda.
JDBCStore.checkConnectionSQLException = Ha tenido lugar una excepci\u00F3n SQL {0}
JDBCStore.checkConnectionClassNotFoundException = No se ha hallado la clase del manejador (driver) JDBC {0}
managerBase.createSession.ise = createSession\: Demasiadas sesiones activas
managerBase.sessionTimeout = Valor inv\u00E1lido de Tiempo Agotado de sesi\u00F3n {0}
standardManager.loading = Cargando sesiones persistidas desde {0}
standardManager.loading.exception = Exception al cargar sesiones persistidas
standardManager.unloading = Salvando sesiones persistidas a {0}
standardManager.managerLoad = Excepci\u00F3n cargando sesiones desde almacenamiento persistente
standardManager.managerUnload = Excepci\u00F3n descargando sesiones a almacenamiento persistente
standardSession.attributeEvent = El oyente de eventos de atributo de Sesi\u00F3n lanz\u00F3 una excepci\u00F3n
standardSession.bindingEvent = El oyente de eventos de ligado de Sesi\u00F3n lanz\u00F3 una excepci\u00F3n
standardSession.invalidate.ise = invalidate\: La Sesi\u00F3n ya ha sido invalidada
standardSession.isNew.ise = isNew\: La Sesi\u00F3n ya ha sido invalidada
standardSession.getAttribute.ise = getAttribute\: La Sesi\u00F3n ya ha sido invalidada
standardSession.getAttributeNames.ise = getAttributeNames\: La Sesi\u00F3n ya ha sido invalidada
standardSession.getCreationTime.ise = getCreationTime\: La Sesi\u00F3n ya ha sido invalidada
standardSession.getThisAccessedTime.ise = getThisAccessedTime\: La Sesi\u00F3n ya ha sido invalidada
standardSession.getLastAccessedTime.ise = getLastAccessedTime\: La Sesi\u00F3n ya ha sido invalidada
standardSession.getValueNames.ise = getValueNames\: La Sesi\u00F3n ya ha sido invalidada
standardSession.notSerializable = No puedo serializar atributo de sesi\u00F3n {0} para sesi\u00F3n {1}
standardSession.removeAttribute.ise = removeAttribute\: La Sesi\u00F3n ya ha sido invalidada
standardSession.sessionEvent = El oyente de evento de Sesi\u00F3n lanz\u00F3 una execpci\u00F3n
standardSession.setAttribute.iae = setAttribute\: Atributo {0} no serializable
standardSession.setAttribute.ise = setAttribute\: La Sesi\u00F3n ya ha sido invalidada
standardSession.setAttribute.namenull = setAttribute\: el nuevo par\u00E1metro no puede ser nulo
persistentManager.loading = Cargando {0} sesiones persistidas
persistentManager.unloading = Salvando {0} sesiones persistidas
persistentManager.deserializeError = Error des-serializando Sesi\u00F3n {0}\: {1}
persistentManager.serializeError = Error serializando Sesi\u00F3n {0}\: {1}
persistentManager.swapMaxIdle = Intercambiando sesi\u00F3n {0} a fuera a Almac\u00E9n, ociosa durante {1} segundos
persistentManager.backupMaxIdle = Respaldando sesi\u00F3n {0} a Almac\u00E9n, ociosa durante {1} segundos
persistentManager.tooManyActive = Demasiadas sesiones activas, {0}, buscando sesiones ociosas para intercambiar
persistentManager.swapTooManyActive = Intercambiando sesi\u00F3n {0} a fuera, ociosa durante {1} segundos\: Demasiadas sesiones activas
persistentManager.swapIn = Intercambiando sesi\u00F3n {0} a dentro desde Almac\u00E9n
