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

#Commons
report.And=und
report.SetRangeUnknown=\u00C4nderungen seit unbekanntem Breich
report.SetRangeSince=\u00C4nderungen seit
report.SetRangeBetween=\u00C4nderungen zwischen
report.SetTagCreation=\u00C4nderungen seit Projekterstellung
report.SetTagSince=\u00C4nderungen seit Markierung
report.SetTagBetween=\u00C4nderungen zwischen Markierungen
report.To=an
report.TotalCommits=Summe Festschreibungen

#Changelog
report.changelog.header=\u00C4nderungsprotokollbericht
report.changelog.mainTitle=\u00C4nderungsprotokollbericht
report.changelog.ChangedSetsTotal=Summe der ge\u00E4nderten S\u00E4tze
report.changelog.FilesChanged=Summe ge\u00E4nderter Dateien
report.changelog.timestamp=Zeitstempel
report.changelog.author=Autor
report.changelog.details=Details
report.changelog.revision=Revision

#Developer Activity
report.dev-activity.header=Entwickler-Aktivit\u00E4ten-Bericht
report.dev-activity.mainTitle=Entwickler-Aktivit\u00E4ten-Bericht
report.dev-activity.noDevelopers=Keine Entwickler in POM gefunden.
report.dev-activity.range=Bereich
report.dev-activity.filesChanged=Summe ge\u00E4nderter Dateien
report.dev-activity.developer=Entwickler

#File Activity
report.file-activity.header=Datei-Aktivit\u00E4ten-Bericht
report.file-activity.mainTitle=Datei-Aktivit\u00E4ten-Bericht
report.file-activity.range=Bereich
report.file-activity.filesChanged=Summe ge\u00E4nderter Dateien
report.file-activity.timesChanged=Anzahl \u00C4nderungen
report.file-activity.filename=Dateiname
