diff --git a/options/locale/locale_pt-BR.ini b/options/locale/locale_pt-BR.ini
index 528c394c6..dfffb92d2 100644
--- a/options/locale/locale_pt-BR.ini
+++ b/options/locale/locale_pt-BR.ini
@@ -805,6 +805,7 @@ repo_and_org_access=Acesso ao Repositório e Organização
 permissions_public_only=Apenas público
 permissions_access_all=Todos (público, privado e limitado)
 select_permissions=Selecionar permissões
+at_least_one_permission=Você deve selecionar pelo menos uma permissão para criar um token
 permissions_list=Permissões:
 
 manage_oauth2_applications=Gerenciar aplicativos OAuth2
@@ -964,6 +965,7 @@ mirror_password_blank_placeholder=(não definida)
 mirror_password_help=Altere o nome de usuário para apagar uma senha armazenada.
 watchers=Observadores
 stargazers=Usuários que estrelaram
+stars_remove_warning=Isto irá remover todos os favoritos dados a este repositório.
 forks=Forks
 reactions_more=e %d mais
 unit_disabled=O administrador do site desabilitou esta seção do repositório.
@@ -978,6 +980,7 @@ delete_preexisting=Excluir arquivos pré-existentes
 delete_preexisting_content=Excluir arquivos em %s
 delete_preexisting_success=Arquivos órfãos excluídos em %s
 blame_prior=Ver a responsabilização anterior a esta modificação
+author_search_tooltip=Mostra um máximo de 30 usuários
 
 transfer.accept=Aceitar transferência
 transfer.accept_desc=`Transferir para "%s"`
@@ -1006,11 +1009,14 @@ template.one_item=Deve-se selecionar pelo menos um item de modelo
 template.invalid=Deve-se selecionar um repositório de modelo
 
 archive.title=Este repositório está arquivado. Você pode visualizar os arquivos e realizar clone, mas não poderá realizar push nem abrir issues e pull requests.
+archive.title_date=Este repositório foi arquivado em %s. Você pode visualizar os arquivos e realizar clone, mas não poderá realizar push nem abrir issues e pull requests.
 archive.issue.nocomment=Este repositório está arquivado. Você não pode comentar nas issues.
 archive.pull.nocomment=Este repositório está arquivado. Você não pode comentar nos pull requests.
 
 form.reach_limit_of_creation_1=Você já atingiu o seu limite de %d repositório.
 form.reach_limit_of_creation_n=Você já atingiu o limite de %d repositórios.
+form.name_reserved=O nome de repositório "%s" está reservado.
+form.name_pattern_not_allowed=O padrão "%s" não é permitido em um nome de repositório.
 
 need_auth=Autorização
 migrate_options=Opções de Migração
@@ -1036,6 +1042,7 @@ migrate.github_token_desc=Você pode colocar aqui um ou mais tokens separados po
 migrate.clone_local_path=ou um caminho de servidor local
 migrate.permission_denied=Você não pode importar repositórios locais.
 migrate.permission_denied_blocked=Você não pode importar dos hosts não permitidos, por favor peça ao administrador para verificar as configurações ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS.
+migrate.invalid_local_path=O caminho local é inválido. Ele não existe ou não é um diretório.
 migrate.invalid_lfs_endpoint=O destino LFS não é válido.
 migrate.failed=Migração falhou: %v
 migrate.migrate_items_options=Um Token de Acesso é necessário para migrar itens adicionais
@@ -1162,6 +1169,7 @@ editor.must_be_on_a_branch=Você deve estar em um branch para propor alteraçõe
 editor.fork_before_edit=Você deve fazer um fork desse repositório para fazer ou propor alterações neste arquivo.
 editor.delete_this_file=Excluir arquivo
 editor.must_have_write_access=Você deve ter permissão de escrita para fazer ou propor alterações neste arquivo.
+editor.file_delete_success=O arquivo "%s" foi excluído.
 editor.name_your_file=Nomeie o seu arquivo…
 editor.filename_help=Adicione um diretório digitando seu nome seguido por uma barra ('/'). Remova um diretório digitando o backspace no início do campo de entrada.
 editor.or=ou
@@ -1174,6 +1182,7 @@ editor.update=Atualizar %s
 editor.delete=Excluir %s
 editor.patch=Aplicar Correção
 editor.patching=Corrigindo:
+editor.fail_to_apply_patch=`Não foi possível aplicar a correção "%s"`
 editor.new_patch=Nova correção
 editor.commit_message_desc=Adicione uma descrição detalhada (opcional)...
 editor.signoff_desc=Adicione um assinado-por-committer no final do log do commit.
@@ -1185,15 +1194,29 @@ editor.new_branch_name=Nome do novo branch para este commit
 editor.new_branch_name_desc=Novo nome do branch...
 editor.cancel=Cancelar
 editor.filename_cannot_be_empty=Nome do arquivo não pode ser em branco.
+editor.filename_is_invalid=O nome do arquivo é inválido: "%s".
+editor.branch_does_not_exist=Branch "%s" não existe neste repositório.
+editor.branch_already_exists=Branch "%s" já existe neste repositório.
+editor.directory_is_a_file=O nome do diretório "%s" já é usado como um nome de arquivo neste repositório.
+editor.file_is_a_symlink=`"%s" é um link simbólico. Links simbólicos não podem ser editados no editor da web`
+editor.filename_is_a_directory=O nome do arquivo "%s" já é usado como um nome de diretório neste repositório.
+editor.file_editing_no_longer_exists=O arquivo que está sendo editado, "%s", não existe mais neste repositório.
+editor.file_deleting_no_longer_exists=O arquivo a ser excluído, "%s", não existe mais neste repositório.
 editor.file_changed_while_editing=O conteúdo do arquivo mudou desde que você começou a editar. <a target="_blank" rel="noopener noreferrer" href="%s">Clique aqui</a> para ver o que foi editado ou <strong>clique em Aplicar commit das alterações novamemente</strong> para sobreescrever estas alterações.
+editor.file_already_exists=Um arquivo com nome "%s" já existe neste repositório.
 editor.commit_empty_file_header=Fazer commit de um arquivo vazio
 editor.commit_empty_file_text=O arquivo que você está prestes fazer commit está vazio. Continuar?
 editor.no_changes_to_show=Nenhuma alteração a mostrar.
+editor.fail_to_update_file=Falha ao atualizar/criar arquivo "%s".
 editor.fail_to_update_file_summary=Mensagem de erro:
 editor.push_rejected_no_message=A alteração foi rejeitada pelo servidor sem uma mensagem. Por favor, verifique os Hooks Git.
 editor.push_rejected=A alteração foi rejeitada pelo servidor. Por favor, verifique os Hooks Git.
 editor.push_rejected_summary=Mensagem completa de rejeição:
 editor.add_subdir=Adicionar um subdiretório...
+editor.unable_to_upload_files=Ocorreu um erro ao enviar arquivos para "%s": %v
+editor.upload_file_is_locked=Arquivo "%s" está bloqueado por %s.
+editor.upload_files_to_dir=`Enviar arquivos para "%s"`
+editor.cannot_commit_to_protected_branch=Não foi possível enviar commits para o branch protegido "%s".
 editor.no_commit_to_branch=Não foi possível fazer commit diretamente no branch porque:
 editor.user_no_push_to_branch=O usuário não pode fazer push no branch
 editor.require_signed_commit=Branch requer um commit assinado
@@ -1202,6 +1225,7 @@ editor.revert=Reverter %s para:
 
 commits.desc=Veja o histórico de alterações do código de fonte.
 commits.commits=Commits
+commits.no_commits=Nenhum commit em comum. "%s" e "%s" tem históricos completamente diferentes.
 commits.nothing_to_compare=Estes branches são iguais.
 commits.search=Pesquisar commits...
 commits.find=Pesquisar
@@ -1236,12 +1260,14 @@ projects.create=Criar Projeto
 projects.title=Título
 projects.new=Novo projeto
 projects.new_subheader=Coordene, acompanhe e atualize seu trabalho em um só lugar, para que os projetos permaneçam transparentes e dentro do cronograma.
+projects.create_success=Projeto "%s" criado.
 projects.deletion=Apagar Projeto
 projects.deletion_desc=Excluir um projeto o remove de todas as issues relacionadas. Deseja continuar?
 projects.deletion_success=O projeto foi excluido.
 projects.edit=Editar Projetos
 projects.edit_subheader=Projetos organizam issues e acompanham o progresso.
 projects.modify=Atualizar Projeto
+projects.edit_success=Projeto "%s" atualizado.
 projects.type.none=Nenhum
 projects.type.basic_kanban=Kanban básico
 projects.type.bug_triage=Triagem de Bugs
@@ -1448,6 +1474,9 @@ issues.attachment.download=`Clique para baixar "%s"`
 issues.subscribe=Inscrever-se
 issues.unsubscribe=Desinscrever
 issues.unpin_issue=Desfixar issue
+issues.max_pinned=Você não pode fixar mais issues
+issues.pin_comment=fixou isto %s
+issues.unpin_comment=desafixou isto %s
 issues.lock=Bloquear conversação
 issues.unlock=Desbloquear conversação
 issues.lock.unknown_reason=Não pode-se bloquear uma issue com um motivo desconhecido.
@@ -1513,6 +1542,9 @@ issues.due_date_invalid=A data limite é inválida ou está fora do intervalo. P
 issues.dependency.title=Dependências
 issues.dependency.issue_no_dependencies=Nenhuma dependência definida.
 issues.dependency.pr_no_dependencies=Nenhuma dependência definida.
+issues.dependency.no_permission_1=Você não tem permissão para ler %d dependência
+issues.dependency.no_permission_n=Você não tem permissão para ler %d dependências
+issues.dependency.no_permission.can_remove=Você não tem permissão para ler esta dependência, mas pode remover esta dependência
 issues.dependency.add=Adicione…
 issues.dependency.cancel=Cancelar
 issues.dependency.remove=Remover
@@ -1551,6 +1583,7 @@ issues.review.add_review_request=solicitou revisão de %s %s
 issues.review.remove_review_request=removeu a solicitação de revisão para %s %s
 issues.review.remove_review_request_self=recusou revisar %s
 issues.review.pending=Pendente
+issues.review.pending.tooltip=Este comentário não está atualmente visível para outros usuários. Para enviar seus comentários pendentes, selecione "%s" -> "%s/%s/%s" no topo da página.
 issues.review.review=Revisão
 issues.review.reviewers=Revisores
 issues.review.outdated=Desatualizado
@@ -1585,6 +1618,8 @@ pulls.compare_changes_desc=Selecione o branch de destino (push) e o branch de or
 pulls.has_viewed_file=Visto
 pulls.has_changed_since_last_review=Alterado desde a última revisão
 pulls.viewed_files_label=%[1]d / %[2]d arquivos visualizados
+pulls.expand_files=Expandir todos os arquivos
+pulls.collapse_files=Colapsar todos os arquivos
 pulls.compare_base=merge em
 pulls.compare_compare=pull de
 pulls.switch_comparison_type=Mudar tipo de comparação
@@ -1605,6 +1640,7 @@ pulls.reopen_to_merge=Por favor reabra este pull request para aplicar o merge.
 pulls.cant_reopen_deleted_branch=Este pull request não pode ser reaberto porque o branch foi excluído.
 pulls.merged=Merge aplicado
 pulls.manually_merged=Merge aplicado manualmente
+pulls.merged_info_text=O branch %s pode ser excluído.
 pulls.is_closed=O pull request foi fechado.
 pulls.title_wip_desc=`<a href="#">Inicie o título com o prefixo <strong>%s</strong></a> para prevenir o merge do pull request até que o mesmo esteja pronto.`
 pulls.cannot_merge_work_in_progress=Este pull request está marcado como um trabalho em andamento.
@@ -1701,6 +1737,7 @@ pulls.delete.text=Você realmente deseja excluir este pull request? (Isto irá r
 
 milestones.new=Novo marco
 milestones.closed=Fechado %s
+milestones.update_ago=Atualizado há %s
 milestones.no_due_date=Sem data limite
 milestones.open=Reabrir
 milestones.close=Fechar
@@ -1728,6 +1765,7 @@ milestones.filter_sort.most_complete=Mais completo
 milestones.filter_sort.most_issues=Com mais issues
 milestones.filter_sort.least_issues=Com menos issues
 
+signing.will_sign=`Este commit será assinado com a chave "%s"`
 signing.wont_sign.error=Houve um erro ao verificar se o commit poderia ser assinado
 signing.wont_sign.nokey=Não há chave disponível para assinar este commit
 signing.wont_sign.never=Commits nunca são assinados
@@ -1752,6 +1790,8 @@ wiki.create_first_page=Criar a primeira página
 wiki.page=Página
 wiki.filter_page=Filtrar página
 wiki.new_page=Página
+wiki.page_title=Título da página
+wiki.page_content=Conteúdo
 wiki.default_commit_message=Escreva uma nota sobre a atualização nesta página (opcional).
 wiki.save_page=Salvar página
 wiki.last_commit_info=%s editou esta página %s
@@ -1856,6 +1896,7 @@ settings.hooks=Webhooks
 settings.githooks=Hooks do Git
 settings.basic_settings=Configurações básicas
 settings.mirror_settings=Opções de espelhamento
+settings.mirror_settings.docs.doc_link_title=Como posso espelhar repositórios?
 settings.mirror_settings.mirrored_repository=Repositório espelhado
 settings.mirror_settings.direction=Sentido
 settings.mirror_settings.direction.pull=Pull
@@ -2343,6 +2384,7 @@ branch.delete=`Excluir branch "%s"`
 branch.delete_html=Excluir Branch
 branch.delete_desc=A exclusão de um branch é permanente. Isto <strong>NÃO PODERÁ</strong> ser desfeito. Continuar?
 branch.create_branch=Criar branch <strong>%s</strong>
+branch.branch_already_exists=Branch "%s" já existe neste repositório.
 branch.deleted_by=Excluído por %s
 branch.included_desc=Este branch faz parte do branch padrão
 branch.included=Incluído
@@ -2938,6 +2980,7 @@ config.xorm_log_sql=Log SQL
 config.get_setting_failed=Falha ao obter configuração %s
 config.set_setting_failed=Falha ao definir configuração %s
 
+monitor.stats=Estatísticas
 
 monitor.cron=Tarefas cron
 monitor.name=Nome
@@ -2947,6 +2990,8 @@ monitor.previous=Vez anterior
 monitor.execute_times=Execuções
 monitor.process=Processos em execução
 monitor.stacktrace=Stacktraces
+monitor.processes_count=%d processos
+monitor.download_diagnosis_report=Baixar relatório de diagnóstico
 monitor.desc=Descrição
 monitor.start=Hora de início
 monitor.execute_time=Tempo de execução
@@ -2972,6 +3017,7 @@ monitor.queue.settings.maxnumberworkers.placeholder=Atualmente %[1]d
 monitor.queue.settings.maxnumberworkers.error=Número máximo de executores deve ser um número
 monitor.queue.settings.submit=Atualizar configurações
 monitor.queue.settings.changed=Configurações atualizadas
+monitor.queue.settings.remove_all_items=Remover tudo
 
 notices.system_notice_list=Avisos do sistema
 notices.view_detail_header=Ver detalhes do aviso
@@ -3106,8 +3152,10 @@ versions.view_all=Ver todas
 dependency.id=ID
 dependency.version=Versão
 alpine.install=Para instalar o pacote, execute o seguinte comando:
+alpine.repository=Informações do repositório
 alpine.repository.branches=Branches
 alpine.repository.repositories=Repositórios
+alpine.repository.architectures=Arquiteturas
 cargo.registry=Configurar este registro no arquivo de configuração de Cargo (por exemplo <code>~/.cargo/config.toml</code>):
 cargo.install=Para instalar o pacote usando Cargo, execute o seguinte comando:
 cargo.documentation=Para obter mais informações sobre o registro Cargo, consulte <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/packages/cargo/">a documentação</a>.
@@ -3142,7 +3190,12 @@ container.labels.key=Chave
 container.labels.value=Valor
 cran.install=Para instalar o pacote, execute o seguinte comando:
 debian.registry=Configure este registro pela linha de comando:
+debian.registry.info=Escolha uma $distribution e um $component da lista abaixo:
 debian.install=Para instalar o pacote, execute o seguinte comando:
+debian.repository=Informações do repositório
+debian.repository.distributions=Distribuições
+debian.repository.components=Componentes
+debian.repository.architectures=Arquiteturas
 generic.download=Baixar pacote pela linha de comando:
 generic.documentation=Para obter mais informações sobre o registro genérico, consulte <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/packages/generic">a documentação</a>.
 helm.registry=Configurar este registro pela linha de comando:
@@ -3295,13 +3348,18 @@ runners.status.idle=Inativo
 runners.status.active=Ativo
 runners.status.offline=Offiline
 runners.version=Versão
+runners.reset_registration_token_success=Token de registro de runner redefinido com sucesso
 
 runs.all_workflows=Todos os Workflows
 runs.commit=Commit
 runs.pushed_by=Push realizado por
 runs.invalid_workflow_helper=O arquivo de configuração do workflow é inválido. Por favor, verifique seu arquivo de configuração: %s
+runs.no_matching_runner_helper=Nenhum runner correspondente: %s
 
 need_approval_desc=Precisa de aprovação para executar workflows para pull request do fork.
 
 [projects]
+type-1.display_name=Projeto individual
+type-2.display_name=Projeto do repositório
+type-3.display_name=Projeto da organização