diff --git a/plugins/MergerSite/languages/pt-br.json b/plugins/MergerSite/languages/pt-br.json
new file mode 100644
index 00000000..cdc298cb
--- /dev/null
+++ b/plugins/MergerSite/languages/pt-br.json
@@ -0,0 +1,5 @@
+{
+ "Add %s new site?": "Adicionar %s novo site?",
+ "Added %s new site": "Site %s adicionado",
+ "Site deleted: %s": "Site removido: %s"
+}
diff --git a/plugins/Mute/languages/pt-br.json b/plugins/Mute/languages/pt-br.json
new file mode 100644
index 00000000..fd858678
--- /dev/null
+++ b/plugins/Mute/languages/pt-br.json
@@ -0,0 +1,6 @@
+{
+ "Hide all content from %s?": "Esconder todo conteúdo de %s?",
+ "Mute": "Ativar mudo",
+ "Unmute %s?": "Mostrar o contéudo de %s?",
+ "Unmute": "Desativar mudo"
+}
diff --git a/plugins/OptionalManager/languages/pt-br.json b/plugins/OptionalManager/languages/pt-br.json
new file mode 100644
index 00000000..21d90cc0
--- /dev/null
+++ b/plugins/OptionalManager/languages/pt-br.json
@@ -0,0 +1,7 @@
+{
+ "Pinned %s files": "Arquivos %s fixados",
+ "Removed pin from %s files": "Arquivos %s não estão fixados",
+ "You started to help distribute %s.
Directory: %s": "Você começou a ajudar a distribuir %s.
Pasta: %s",
+ "Help distribute all new optional files on site %s": "Ajude a distribuir todos os novos arquivos opcionais no site %s",
+ "Yes, I want to help!": "Sim, eu quero ajudar!"
+}
diff --git a/plugins/Sidebar/languages/pt-br.json b/plugins/Sidebar/languages/pt-br.json
new file mode 100644
index 00000000..92e2aa03
--- /dev/null
+++ b/plugins/Sidebar/languages/pt-br.json
@@ -0,0 +1,81 @@
+{
+ "Peers": "Peers",
+ "Connected": "Ligados",
+ "Connectable": "Disponíveis",
+ "Connectable peers": "Peers disponíveis",
+
+ "Data transfer": "Transferência de dados",
+ "Received": "Recebidos",
+ "Received bytes": "Bytes recebidos",
+ "Sent": "Enviados",
+ "Sent bytes": "Dados enviados",
+
+ "Files": "Ficheiros",
+ "Total": "Total",
+ "Image": "Imagem",
+ "Other": "Outros",
+ "User data": "Dados do usuário",
+
+ "Size limit": "Limite de tamanho",
+ "limit used": "limite utilizado",
+ "free space": "espaço livre",
+ "Set": "Definir",
+
+ "Optional files": "Arquivos adicionais",
+ "Downloaded": "Baixados",
+ "Download and help distribute all files": "Baixar e ajudar a distribuir todos os arquivos",
+ "Total size": "Tamanho total",
+ "Downloaded files": "Arquivos baixados",
+
+ "Database": "Base de dados",
+ "search feeds": "pesquisar feeds",
+ "{feeds} query": "consulta de {feeds}",
+ "Reload": "Recarregar",
+ "Rebuild": "Reconstruir",
+ "No database found": "Base de dados não encontrada",
+
+ "Identity address": "Endereço de identidade",
+ "Change": "Alterar",
+
+ "Update": "Atualizar",
+ "Pause": "Suspender",
+ "Resume": "Continuar",
+ "Delete": "Remover",
+ "Are you sure?": "Tem certeza?",
+
+ "Site address": "Endereço do site",
+ "Donate": "Doar",
+
+ "Missing files": "Arquivos em falta",
+ "{} try": "{} tentativa",
+ "{} tries": "{} tentativas",
+ "+ {num_bad_files} more": "+ {num_bad_files} adicionais",
+
+ "This is my site": "Este é o meu site",
+ "Site title": "Título do site",
+ "Site description": "Descrição do site",
+ "Save site settings": "Salvar definições do site",
+
+ "Content publishing": "Publicação do conteúdo",
+ "Choose": "Escolher",
+ "Sign": "Assinar",
+ "Publish": "Publicar",
+
+ "This function is disabled on this proxy": "Esta função encontra-se desativada neste proxy",
+ "GeoLite2 City database download error: {}!
Please download manually and unpack to data dir:
{}": "Erro ao baixar a base de dados GeoLite2 City: {}!
Por favor baixe manualmente e descompacte os dados para a seguinte pasta:
{}",
+ "Downloading GeoLite2 City database (one time only, ~20MB)...": "Baixando a base de dados GeoLite2 City (download único, ~20MB)...",
+ "GeoLite2 City database downloaded!": "A base de dados GeoLite2 City foi baixada!",
+
+ "Are you sure?": "Tem certeza",
+ "Site storage limit modified!": "O limite de armazenamento do site foi modificado!",
+ "Database schema reloaded!": "O esquema da base de dados foi atualizado!",
+ "Database rebuilding....": "Reconstruindo base de dados...",
+ "Database rebuilt!": "Base de dados reconstruída!",
+ "Site updated!": "Site atualizado!",
+ "Delete this site": "Remover este site",
+ "File write error: ": "Erro de escrita de arquivo: ",
+ "Site settings saved!": "Definições do site salvas!",
+ "Enter your private key:": "Digite sua chave privada:",
+ " Signed!": " Assinado!",
+ "WebGL not supported": "WebGL não é suportado"
+}
diff --git a/plugins/Trayicon/languages/pt-br.json b/plugins/Trayicon/languages/pt-br.json
new file mode 100644
index 00000000..5e86493a
--- /dev/null
+++ b/plugins/Trayicon/languages/pt-br.json
@@ -0,0 +1,14 @@
+{
+ "ZeroNet Twitter": "ZeroNet Twitter",
+ "ZeroNet Reddit": "ZeroNet Reddit",
+ "ZeroNet Github": "ZeroNet Github",
+ "Report bug/request feature": "Reportar bug/sugerir recurso",
+ "!Open ZeroNet": "!Abrir ZeroNet",
+ "Quit": "Sair",
+ "(active)": "(ativo)",
+ "(passive)": "(passivo)",
+ "Connections: %s": "Conexões: %s",
+ "Received: %.2f MB | Sent: %.2f MB": "Recebido: %.2f MB | Enviado: %.2f MB",
+ "Show console window": "Mostrar console",
+ "Start ZeroNet when Windows starts": "Iniciar o ZeroNet quando o Windows for iniciado"
+}
diff --git a/src/Translate/languages/pt-br.json b/src/Translate/languages/pt-br.json
new file mode 100644
index 00000000..d0aaf541
--- /dev/null
+++ b/src/Translate/languages/pt-br.json
@@ -0,0 +1,51 @@
+{
+ "Congratulation, your port {0} is opened.
You are full member of ZeroNet network!": "Parabéns, a porta{0} está aberta.
Você é um membro completo da rede ZeroNet!",
+ "Tor mode active, every connection using Onion route.": "Modo Tor ativado, todas as conexões usam a rota Onion.",
+ "Successfully started Tor onion hidden services.": "Os serviços ocultos Tor onion foram inciados com sucesso.",
+ "Unable to start hidden services, please check your config.": "Não foi possível iniciar os serviços ocultos, por favor verifique suas configurações.",
+ "For faster connections open {0} port on your router.": "Para conexões mais rápidas, abra a porta {0} em seu roteador.",
+ "Your connection is restricted. Please, open {0} port on your router": "Sua conexão está restrita. Por favor, abra a porta {0} em seu roteador",
+ "or configure Tor to become full member of ZeroNet network.": "ou configure o Tor para se tornar um membro completo da rede ZeroNet.",
+
+ "Select account you want to use in this site:": "Selecione a conta que deseja usar nesse site:",
+ "currently selected": "atualmente selecionada",
+ "Unique to site": "Única para o site",
+
+ "Content signing failed": "Assinatura de conteúdo falhou",
+ "Content publish queued for {0:.0f} seconds.": "Publicação de conteúdo na fila por {0:.0f} segundos.",
+ "Content published to {0} peers.": "Conteúdo publicado para {0} pares.",
+ "No peers found, but your content is ready to access.": "Nenhum par encontrado, mas seu conteúdo está pronto para ser acessado.",
+ "Your network connection is restricted. Please, open {0} port": "Sua conexão de rede está restrita. Por favor, abra a porta {0}",
+ "on your router to make your site accessible for everyone.": "em seu roteador para tornar seu site acessível para todos.",
+ "Content publish failed.": "Publicação de conteúdo falhou.",
+ "This file still in sync, if you write it now, then the previous content may be lost.": "Esse arquivo ainda está sincronizado, se escreve-lo agora o conteúdo anterior poderá ser perdido.",
+ "Write content anyway": "Escrever o conteúdo mesmo assim",
+ "New certificate added:": "Novo certificado adicionado:",
+ "You current certificate:": "Seu certificado atual:",
+ "Change it to {auth_type}/{auth_user_name}@{domain}": "Alterar para {auth_type}/{auth_user_name}@{domain}",
+ "Certificate changed to: {auth_type}/{auth_user_name}@{domain}.": "Certificado alterado para: {auth_type}/{auth_user_name}@{domain}.",
+ "Site cloned": "Site clonado",
+
+ "You have successfully changed the web interface's language!": "Você alterou o idioma da interface web com sucesso!",
+ "Due to the browser's caching, the full transformation could take some minute.": "Devido ao cache do navegador, a transformação completa pode levar alguns minutos.",
+
+ "Connection with UiServer Websocket was lost. Reconnecting...": "A conexão com UiServer Websocket foi perdida. Reconectando...",
+ "Connection with UiServer Websocket recovered.": "Conexão com UiServer Websocket recuperada.",
+ "UiServer Websocket error, please reload the page.": "Erro de UiServer Websocket, por favor atualize a página.",
+ " Connecting...": " Conectando...",
+ "Site size: ": "Tamanho do site: ",
+ "MB is larger than default allowed ": "MB é maior do que o tamanho permitido por padrão",
+ "Open site and set size limit to \" + site_info.next_size_limit + \"MB": "Abrir site e definir limite de tamanho para \" + site_info.next_size_limit + \"MBs",
+ " files needs to be downloaded": " os arquivos precisam ser baixados",
+ " downloaded": " baixados",
+ " download failed": " falha no download",
+ "Peers found: ": "Pares encontrados: ",
+ "No peers found": "Nenhum par encontrado",
+ "Running out of size limit (": "Passando do tamanho limite (",
+ "Set limit to \" + site_info.next_size_limit + \"MB": "Definir limite para \" + site_info.next_size_limit + \"MB",
+ "Site size limit changed to {0}MB": "Limite de tamanho do site alterado para {0}MBs",
+ " New version of this page has just released.
Reload to see the modified content.": " Uma nova versão desse site acaba de ser publicada.
Atualize para ver o conteúdo modificado.",
+ "This site requests permission:": "Esse site solicita permissão:",
+ "Grant": "Conceder"
+
+}