#
# Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

# Messages for message reporting
BadMessageKey = N\u00E3o foi poss\u00EDvel encontrar a mensagem de erro correspondente \u00E0 chave da mensagem.
FormatFailed = Ocorreu um erro interno ao formatar a mensagem a seguir:\n  

# Messages for erroneous input
NoFallback = Falha em um ''include'' com href ''{0}'' e n\u00E3o foi encontrado elemento ''fallback''.
MultipleFallbacks = O [children] de um elemento 'include' n\u00E3o pode conter mais de um elemento 'fallback'.
FallbackParent = Um elemento 'fallback' que foi encontrado n\u00E3o tinha 'include' como pai.
IncludeChild = Elementos do namespace ''http://www.w3.org/2001/XInclude'', diferentes de ''fallback'', n\u00E3o podem ser filhos dos elementos ''include''. No entanto, ''{0}'' foi encontrado.
FallbackChild = Elementos do namespace ''http://www.w3.org/2001/XInclude'', diferentes de ''include'', n\u00E3o podem ser filhos dos elementos ''fallback''. No entanto, ''{0}'' foi encontrado.
HrefMissing = O atributo 'href' de um elemento 'include' n\u00E3o foi encontrado.
RecursiveInclude = Inclus\u00E3o recursiva detectada. O documento ''{0}'' j\u00E1 foi processado.
InvalidParseValue = Valor inv\u00E1lido para o atributo ''parse'' no elemento ''include'': ''{0}''.
XMLParseError = Erro ao tentar fazer parse do arquivo XML (href=''{0}''). Motivo: {1}
XMLResourceError = Falha na opera\u00E7\u00E3o de inclus\u00E3o; revertendo para fallback. Erro do recurso ao ler o arquivo como XML (href=''{0}''). Motivo: {1}
TextResourceError = Falha na opera\u00E7\u00E3o de inclus\u00E3o; revertendo para fallback. Erro do recurso ao ler o arquivo como texto (href=''{0}''). Motivo: {1}
NO_XPointerSchema = Por padr\u00E3o, o esquema para "{0}" n\u00E3o \u00E9 suportado. Defina seu pr\u00F3prio esquema para {0}. Consulte http://apache.org/xml/properties/xpointer-schema
NO_SubResourceIdentified = Nenhum Sub-recurso foi identificado pelo Processador XPointer do Ponteiro {0}.
NonDuplicateNotation = Foram usadas v\u00E1rias nota\u00E7\u00F5es que tinham o nome ''{0}'', mas n\u00E3o foram determinadas como duplica\u00E7\u00F5es.
NonDuplicateUnparsedEntity = Foram usadas v\u00E1rias entidades que tinham o nome ''{0}'', mas n\u00E3o foram determinadas como duplica\u00E7\u00F5es.
XpointerMissing = o atributo xpointer dever\u00E1 estar presente quando o atributo href estiver ausente.
AcceptMalformed = N\u00E3o s\u00E3o permitidos caracteres fora da faixa #x20 at\u00E9 #x7E no valor do atributo 'accept' de um elemento 'include'.
AcceptLanguageMalformed = N\u00E3o s\u00E3o permitidos caracteres fora da faixa #x20 at\u00E9 #x7E no valor do atributo 'accept-language' de um elemento 'include'.
RootElementRequired = Um documento correto requer um elemento-raiz.
MultipleRootElements = Um documento correto n\u00E3o deve conter v\u00E1rios elementos-raiz.
ContentIllegalAtTopLevel = A substitui\u00E7\u00E3o de um elemento 'include' que aparece como o elemento do documento no conjunto de informa\u00E7\u00F5es de origem de n\u00EDvel superior n\u00E3o pode conter caracteres.
UnexpandedEntityReferenceIllegal = A substitui\u00E7\u00E3o de um elemento 'include' que aparece como o elemento do documento no conjunto de informa\u00E7\u00F5es de origem de n\u00EDvel superior n\u00E3o pode conter refer\u00EAncias da entidade n\u00E3o expandidas.
HrefFragmentIdentifierIllegal = Os identificadores de fragmento n\u00E3o devem ser usados. O valor do atributo ''href'' "{0}'' n\u00E3o \u00E9 permitido.
HrefSyntacticallyInvalid = o valor do atributo ''href'' ''{0}'' \u00E9 inv\u00E1lido sintaticamente. Ap\u00F3s aplicar as regras de escape, o valor n\u00E3o \u00E9 um URI ou IRI correto.
XPointerStreamability = Foi especificado um xpointer que aponta para uma localiza\u00E7\u00E3o no conjunto de informa\u00E7\u00F5es de origem. Esta localiza\u00E7\u00E3o n\u00E3o pode ser acessada em decorr\u00EAncia da natureza do fluxo do processador.

XPointerResolutionUnsuccessful = Resolu\u00E7\u00E3o de XPointer malsucedida.

# Messages from erroneous set-up
IncompatibleNamespaceContext = O tipo de NamespaceContext \u00E9 incompat\u00EDvel ao usar XInclude. Deve ser uma inst\u00E2ncia de XIncludeNamespaceSupport
ExpandedSystemId = N\u00E3o foi poss\u00EDvel expandir o id do sistema do recurso inclu\u00EDdo
