# 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=e
report.SetRangeUnknown=Mudan\u00e7as de um per\u00edodo desconhecido
report.SetRangeSince=Mudan\u00e7as desde
report.SetRangeBetween=Mudan\u00e7as entre
report.SetTagCreation=Mudan\u00e7as desde a cria\u00e7\u00e3o do projeto
report.SetTagSince=Mudan\u00e7as deste o tag
report.SetTagBetween=Mudan\u00e7as entre tags
report.SetTagUntil=at\u00e9 tag
report.To=para
report.TotalCommits=Commits totais

#Changelog
report.changelog.name=Registros de Mudan\u00e7as
report.changelog.description=Gerado relat\u00f3rio de mudan\u00e7as do SCV.
report.changelog.header=Relat\u00f3rio de Mudan\u00e7as
report.changelog.mainTitle=Relat\u00f3rio de Mudan\u00e7as
report.changelog.ChangedSetsTotal=N\u00famero total de mudan\u00e7as
report.changelog.FilesChanged=N\u00famero total de arquivos alterados
report.changelog.timestamp=Data e hora
report.changelog.author=Autor
report.changelog.details=Detalhes
report.changelog.revision=Revis\u00e3o
report.changelog.nosources=Origem n\u00e3o localizada para criar o relat\u00f3rio.

#Developer Activity
report.dev-activity.name=Atividade dos Desenvolvedores
report.dev-activity.description=Gerado relat\u00f3rio de atividades dos desenvolvedores do SCV.
report.dev-activity.header=Relat\u00f3rio de Atividades dos Desenvolvedores
report.dev-activity.mainTitle=Relat\u00f3rio de Atividades dos Desenvolvedores
report.dev-activity.noDevelopers=Desenvolvedores n\u00e3o encontrados no pom.
report.dev-activity.range=Per\u00edodo
report.dev-activity.filesChanged=N\u00famero total de arquivos alterados
report.dev-activity.developer=Desenvolvedor

#File Activity
report.file-activity.name=Atividade nos Arquivos
report.file-activity.description=Gerado relat\u00f3rio de atividade nos arquivos do SCM.
report.file-activity.header=Relat\u00f3rio de Atividade nos Arquivos
report.file-activity.mainTitle=Relat\u00f3rio de Atividade nos Arquivos
report.file-activity.range=Per\u00edodo
report.file-activity.filesChanged=N\u00famero total de arquivos alterados
report.file-activity.timesChanged=N\u00famero de altera\u00e7\u00f5es
report.file-activity.filename=Nome do arquivo
