# Copyright 2004 The Apache Software Foundation
#
# Licensed 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.

# $Id$
#
# Default localized string information
# Localized para Locale es_ES

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.short_read=Lectura Corta

http.method_not_implemented=El Metodo {0} no esta definido en la especificacion RFC 2068 y no es soportado por la API Servlet 

http.method_get_not_supported=El Metodo HTTP GET no es soportado por esta URL
http.method_post_not_supported=El Metodo HTTP POST no es soportado por esta URL
http.method_put_not_supported=El Metodo HTTP PUT no es soportado por esta URL
http.method_delete_not_supported=El Metodo HTTP DELETE no es soportado por esta URL
