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

pluginxdoc.yes=Ja
pluginxdoc.no=Nein

pluginxdoc.description=<strong>Beschreibung</strong>:
pluginxdoc.nodescription=(keine Beschreibung)
pluginxdoc.mojodescriptor.notice.note=<strong>Anmerkung</strong>:
pluginxdoc.mojodescriptor.notice.isMavenReport=Dieses Goal erzeugt einen Maven-Bericht.
pluginxdoc.mojodescriptor.fullname=<strong>Vollst\u00e4ndiger Name</strong>:
pluginxdoc.mojodescriptor.attributes=<strong>Attribute</strong>:
pluginxdoc.mojodescriptor.deprecated=<strong>Dieses Plugin-Goal ist missbilligt</strong>:
pluginxdoc.mojodescriptor.projectRequired=Erfordert ein Maven Projekt zur Ausf\u00fchrung.
pluginxdoc.mojodescriptor.aggregator=Wird als Aggregator ausgef\u00fchrt.
pluginxdoc.mojodescriptor.directInvocationOnly=Wird nur per direktem Aufruf ausgef\u00fchrt.
pluginxdoc.mojodescriptor.dependencyResolutionRequired=Erfordert Abh\u00e4ngigkeitsaufl\u00f6sung von Artefakten mit Geltungsbereich: <code>{0}</code>.
pluginxdoc.mojodescriptor.dependencyCollectionRequired=Erfordert Abh\u00e4ngigkeitsermittlung von Artefakten mit Geltungsbereich: <code>{0}</code>.
pluginxdoc.mojodescriptor.since=Seit Version: <code>{0}</code>.
pluginxdoc.mojodescriptor.phase=Bindet automatisch an die Lebenszyklusphase: <code>{0}</code>.
pluginxdoc.mojodescriptor.executePhase=Bedingt die Ausf\u00fchrung der Lebenszyklusphase <code>{0}</code> vor seiner eigenen Ausf\u00fchrung.
pluginxdoc.mojodescriptor.executeGoal=Bedingt die Ausf\u00fchrung des Plugin-Goals <code>{0}</code> vor seiner eigenen Ausf\u00fchrung.
pluginxdoc.mojodescriptor.executeLifecycle=Wird in seinem eigenen Lebenszyklus ausgef\u00fchrt: <code>{0}</code>.
pluginxdoc.mojodescriptor.onlineRequired=Erfordert die Ausf\u00fchrung von Maven im Online-Modus.
pluginxdoc.mojodescriptor.inheritedByDefault=Wird bei einem Multi-Projekt-Build standardm\u00e4\u00dfig <em>nicht</em> vererbt.
pluginxdoc.mojodescriptor.parameter.details=Parameter-Details
pluginxdoc.mojodescriptor.parameter.deprecated=<strong>Missbilligt.</strong> {0}
pluginxdoc.mojodescriptor.parameter.name=Name
pluginxdoc.mojodescriptor.parameter.description=Beschreibung
pluginxdoc.mojodescriptor.parameter.type=Typ
pluginxdoc.mojodescriptor.parameter.since=Seit
pluginxdoc.mojodescriptor.parameter.required=Erforderlich
pluginxdoc.mojodescriptor.parameter.expression=Ausdruck
pluginxdoc.mojodescriptor.parameter.default=Standard
pluginxdoc.mojodescriptor.parameter.defaultValue=<strong>Standardwert ist</strong>: <code>{0}</code>.
pluginxdoc.mojodescriptor.requiredParameters=Erforderliche Parameter
pluginxdoc.mojodescriptor.optionalParameters=Optionale Parameter
pluginxdoc.mojodescriptor.parameters=Parameter
pluginxdoc.mojodescriptor.noParameter=(keine Parameter)
pluginxdoc.mojodescriptor.threadSafe=Dieses Goal is thread-sicher und unterst\u00fctzt paralleles Bauen.
