# Copyright (c) 2015, 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 = Die zum Meldungsschl\u00FCssel geh\u00F6rige Fehlermeldung kann nicht gefunden werden.
FormatFailed = Beim Formatieren der folgenden Meldung ist ein interner Fehler aufgetreten:\n

#invalid catalog file
InvalidCatalog = Das Dokumentelement eines Katalogs muss ein Katalog sein.
InvalidEntryType = Der Eintragstyp "{0}" ist ung\u00FCltig.
CircularReference = Zirkelbezug ist nicht zul\u00E4ssig: "{0}".

#errors
InvalidArgument = Das angegebene Argument "{0}" (unter Beachtung der Gro\u00DF-/Kleinschreibung) f\u00FCr "{1}" ist nicht g\u00FCltig.
NullArgument = Das Argument "{0}" darf nicht null sein.
InvalidPath = Der Pfad "{0}" ist ung\u00FCltig.
ParserConf = Unerwarteter Fehler bei der Konfiguration eines SAX-Parsers.
ParsingFailed = Die Katalogdatei konnte nicht geparst werden.
NoCatalogFound = Kein Katalog angegeben.
NoMatchFound = Keine \u00DCbereinstimmung f\u00FCr publicId "{0}" und systemId "{1}" gefunden.
NoMatchURIFound = Keine \u00DCbereinstimmung f\u00FCr href "{0}" und base "{1}" gefunden.
FailedCreatingURI = URI kann nicht mit href "{0}" und base "{1}" erstellt werden.
OtherError = Unerwarteter Fehler.
