From 8abadd1070b038eee2bcbc9551fac456c7a75d35 Mon Sep 17 00:00:00 2001 From: Matias G Henschel <31413431+mghextreme@users.noreply.github.com> Date: Sun, 13 Jul 2025 16:29:43 -0300 Subject: [PATCH] Added PT-BR language, minor ES fix. (#817) --- src/static/locale/active_languages.json | 5 + src/static/locale/es-es.json | 8 +- src/static/locale/pt-br.json | 369 ++++++++++++++++++++++++ 3 files changed, 378 insertions(+), 4 deletions(-) create mode 100644 src/static/locale/pt-br.json diff --git a/src/static/locale/active_languages.json b/src/static/locale/active_languages.json index d774748..79a2c22 100644 --- a/src/static/locale/active_languages.json +++ b/src/static/locale/active_languages.json @@ -89,6 +89,11 @@ "lang_name": "Polish", "lang_name_localized": "Polski" }, + { + "lang_id": "pt-br", + "lang_name": "Portuguese (Brazil)", + "lang_name_localized": "Português (Brasil)" + }, { "lang_id": "ru", "lang_name": "Russian", diff --git a/src/static/locale/es-es.json b/src/static/locale/es-es.json index e027bed..112bc60 100644 --- a/src/static/locale/es-es.json +++ b/src/static/locale/es-es.json @@ -305,8 +305,8 @@ "Failed to allow access of peer (.*)": "Fallo de habilitar acceso del peer $1", "Failed to save configuration through WireGuard": "Fallo de salvar configuración a través de WireGuard", "Allow access successfully": "Acceso permitido con éxito", - "Deleted ([0-9]{1,}) peer\\(s\\)": "Eliminados $1 peer(s)", - "Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "Eliminados $1 peer(s) con éxito. Fallo al eliminar $2 peer(s)", - "Restricted ([0-9]{1,}) peer\\(s\\)": "Restringidos $1 peer(s)", - "Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "Restringidos $1 peer(s) con éxito. Fallo al restringir $2 peer(s)" + "Deleted ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) eliminado(s)", + "Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) eliminado(s) con éxito. Fallo al eliminar $2 peer(s)", + "Restricted ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) restringido(s)", + "Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) restringido(s) con éxito. Fallo al restringir $2 peer(s)" } \ No newline at end of file diff --git a/src/static/locale/pt-br.json b/src/static/locale/pt-br.json new file mode 100644 index 0000000..037597c --- /dev/null +++ b/src/static/locale/pt-br.json @@ -0,0 +1,369 @@ +{ + "Welcome to": "Bem vindo ao", + "Username": "Usuário", + "Password": "Senha", + "OTP from your authenticator": "Senha de uso único do seu autenticador", + "Sign In": "Entrar", + "Signing In\\.\\.\\.": "Entrando...", + "Access Remote Server": "Acessar Servidor Remoto", + "Server": "Servidor", + "Click": "Clique", + "Pinging...": "Ping em andamento...", + "to add your server": "para adicionar seu servidor", + "Server List": "Lista de Servidores", + "Sorry, your username or password is incorrect.": "Desculpe, seu usuário ou senha está incorreto.", + "Home": "Página principal", + "Settings": "Definições", + "Tools": "Ferramentas", + "Sign Out": "Sair", + "Checking for update...": "Verificando atualizações...", + "You're on the latest version": "Você está na versão mais recente", + "WireGuard Configurations": "Cofigurações do WireGuard", + "You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "Você ainda não tem nenhuma configuração do WireGuard. Verifique a pasta de configurações ou altere-a nas Definições. Por padrão, a pasta é /etc/wireguard.", + "Configuration": "Configuração", + "Configurations": "Configurações", + "Peers Default Settings": "Definições Padrão dos Peers", + "Dashboard Theme": "Tema do Painel", + "Light": "Claro", + "Dark": "Escuro", + "This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Estes itens serão alterados globalmente, e serão aplicados a todos os QR codes e arquivos de configuração dos peers.", + "WireGuard Configurations Settings": "Definições de Configurações do WireGuard", + "Configurations Directory": "Diretório de Configurações", + "Remember to remove / at the end of your path. e.g /etc/wireguard": "Certifique-se de remover / no final do caminho. Exemplo: /etc/wireguard", + "WGDashboard Account Settings": "Definições da Conta do WGDashboard", + "Current Password": "Senha Atual", + "New Password": "Nova Senha", + "Repeat New Password": "Repetir Nova Senha", + "Update Password": "Atualizar Senha", + "Multi-Factor Authentication \\(MFA\\)": "Autenticação em duas etapas (MFA)", + "Reset": "Redefinir", + "Setup": "Definir", + "API Keys": "Chaves de API", + "API Key": "Chave de API", + "Key": "Chave", + "Enabled": "Habilitado", + "Disabled": "Desabilitado", + "No WGDashboard API Key": "Nenhuma Chave de API do WGDashboard", + "Expire At": "Expira Em", + "Are you sure to delete this API key\\?": "Tem certeza que deseja remover esta chave de API?", + "Create API Key": "Criar Chave de API", + "When should this API Key expire\\?": "Quando esta Chave de API deve expirar?", + "Never Expire": "Nunca Expira", + "Don't think that's a good idea": "Não acho que seja uma boa ideia", + "Creating\\.\\.\\.": "Criando...", + "Create": "Criar", + "Status": "Status", + "On": "Ligado", + "Off": "Desligado", + "Turning On\\.\\.\\.": "Ligando...", + "Turning Off\\.\\.\\.": "Desligando...", + "Address": "Endereço", + "Listen Port": "Porta", + "Table": "Tabela", + "Public Key": "Chave Pública", + "Connected Peers": "Peers Conectados", + "Total Usage": "Uso Total", + "Total Received": "Total Recebido", + "Total Sent": "Total Enviado", + "Peers Data Usage": "Uso de Dados dos Peers", + "Real Time Received Data Usage": "Uso de Dados Recebidos em Tempo Real", + "Real Time Sent Data Usage": "Uso de Dados Enviados em Tempo Real", + "Peer": "Peer", + "Peers": "Peers", + "Peer Settings": "Definições do Peer", + "Download All": "Baixar Todos", + "Search": "Buscar", + "Search Peers\\.\\.\\.": "Buscando em Peers...", + "Display": "Mostrar", + "Sort By": "Ordenar Por", + "Refresh Interval": "Intervalo de Atualização", + "Name": "Nome", + "Allowed IPs": "IPs Permitidos", + "Restricted": "Restrito", + "(.*) Seconds": "$1 Segundos", + "(.*) Minutes": "$1 Minutos", + "Configuration Settings": "Definição de Configuração", + "Peer Jobs": "Jobs do Peer", + "Active Jobs": "Jobs Ativos", + "All Active Jobs": "Todos os Jobs Ativos", + "Logs": "Logs", + "Private Key": "Chave Privada", + "\\(Required for QR Code and Download\\)": "(Obrigatório para QR Code e Download)", + "\\(Required\\)": "(Obrigatório)", + "Endpoint Allowed IPs": "Endeços IP Permitidos do Endpoint", + "DNS": "DNS", + "Optional Settings": "Definições Opcionais", + "Pre-Shared Key": "Chave Pré-Compartilhada", + "MTU": "MTU", + "Persistent Keepalive": "Keepalive Persistente", + "Reset Data Usage": "Redefinir Uso de Dados", + "Total": "Total", + "Sent": "Enviado", + "Received": "Recebido", + "Revert": "Reverter", + "Save Peer": "Salvar Peer", + "QR Code": "QR Code", + "Schedule Jobs": "Agendar Jobs", + "Job": "Job", + "Job ID": "ID do Job", + "Unsaved Job": "Job não salvo", + "This peer does not have any job yet\\.": "Este peer ainda não tem nenhum job.", + "if": "se", + "is": "é", + "then": "então", + "larger than": "maior que", + "Date": "Data", + "Restrict Peer": "Peer Restrito", + "Delete Peer": "Remover Peer", + "Edit": "Editar", + "Delete": "Remover", + "Deleting...": "Removendo...", + "Cancel": "Cancelar", + "Save": "Salvar", + "No active job at the moment\\.": "Nenhum job ativo no momento.", + "Jobs Logs": "Logs de Jobs", + "Updated at": "Atualizado em", + "Refresh": "Atualizar", + "Filter": "Filtrar", + "Success": "Sucesso", + "Failed": "Falhou", + "Log ID": "ID do Log", + "Message": "Mensagem", + "Share Peer": "Compartilhar Peer", + "Currently the peer is not sharing": "No momento o peer não está compartilhando", + "Sharing\\.\\.\\.": "Compartilhando...", + "Start Sharing": "Iniciar Compartilhamento", + "Stop Sharing\\.\\.\\.": "Parar Compartilhamento...", + "Stop Sharing": "Parar Compartilhamento", + "Access Restricted": "Acesso Restrito", + "Restrict Access": "Restringir Acesso", + "Restricting\\.\\.\\.": "Restringindo...", + "Allow Access": "Permitir Acesso", + "Allowing Access\\.\\.\\.": "Permitindo Acesso...", + "Download \\& QR Code is not available due to no private key set for this peer": "Download & QR Code não estão disponíveis devido à ausência de chave privada definida para este peer", + "Add Peers": "Adicionar Peers", + "Bulk Add": "Adicionar Vários", + "By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "Ao gerar vários Peers, o nome de cada peer será gerado automaticamente, e o IP será atribuído ao próximo IP disponível.", + "How many peers you want to add\\?": "Quantos peers você quer adicionar?", + "You can add up to (.*) peers": "Você pode adicionar até $1 peers", + "Use your own Private and Public Key": "Use sua própria Chave Privada e Pública", + "Enter IP Address/CIDR": "Digite Endereço IP/CIDR", + "IP Address/CIDR": "Endereço IP/CIDR", + "or": "ou", + "Pick Available IP": "Selecione um IP Disponível", + "No available IP containing": "Nenhum IP disponível contendo", + "Add": "Adicionar", + "Adding\\.\\.\\.": "Adcionando...", + "Failed to check available update": "Erro ao verificar atualização disponível", + "Nice to meet you!": "Bom te conhecer!", + "Please fill in the following fields to finish setup": "Preencha os seguintes campos para finalizar a configuração", + "Create an account": "Crie uma conta", + "Enter an username you like": "Digite um nome de usuário", + "Enter a password": "Digite uma senha", + "\\(At least 8 characters and make sure is strong enough!\\)": "(Pelo menos 8 caracteres e certifique-se de que seja forte o suficiente!)", + "Confirm password": "Confirme a senha", + "Next": "Próximo", + "Saving\\.\\.\\.": "Salvando...", + "1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Escaneie o seguinte QR Code para gerar um código de uso único com um autenticador de sua escolha", + "Or you can click the link below:": "Ou clique no link abaixo:", + "2\\. Enter the TOTP generated by your authenticator to verify": "2. Digite o código de uso único gerado pelo seu autenticador para verificar", + "TOTP verified!": "Código de uso único verificado!", + "I don't need MFA": "Não preciso de autenticação em duas etapas (MFA)", + "Complete": "Completar", + "(v[0-9.]{1,}) is now available for update!": "$1 está disponível para atualização!", + "Current Version:": "Versão Atual:", + "Oh no\\.\\.\\. This link is either expired or invalid\\.": "Ops... Este link é inválido ou expirou.", + "Scan QR Code with the WireGuard App to add peer": "Escaneie o QR Code com o App WireGuard para adicionar o peer", + "or click the button below to download the ": "ou clique no botão abaixo para baixar o ", + " file": " arquivo", + "FROM ": "DE ", + "(.*) is on": "$1 está ligado", + "(.*) is off": "$1 está desligado", + "Allowed IPs is invalid": "IPs Permitidos inválido", + "Peer created successfully": "Peer criado com sucesso", + "Please fill in all required box": "Preencha todas as caixas obrigatórias", + "Please specify amount of peers you want to add": "Especifique a quantidade de peers que você deseja adicionar", + "No more available IP can assign": "Não há mais IPs disponíveis para atribuir", + "The maximum number of peers can add is (.*)": "O número máximo de peers que podem ser adicionados é $1", + "Generating key pairs by bulk failed": "Gerar vários pares de chaves falhou", + "Failed to add peers in bulk": "Erro ao adicionar múltiplos peers", + "This peer already exist": "Este peer já existe", + "This IP is not available: (.*)": "Este IP não está disponível: $1", + "Configuration does not exist": "Configuração não existe", + "Peer does not exist": "Peer não existe", + "Please provide a valid configuration name": "Informe um nome de configuração válido", + "Peer saved": "Peer salvo", + "Allowed IPs already taken by another peer": "IPs Permitidos já estão sendo usados por outro peer", + "Endpoint Allowed IPs format is incorrect": "Formato dos IPs Permitidos do Endpoint está incorreta", + "DNS format is incorrect": "Formato do DNS está incorreto", + "MTU format is not correct": "Formato do MTU está incorreto", + "Persistent Keepalive format is not correct": "Formato do Keepalive Persistente está incorreto", + "Private key does not match with the public key": "Chave privada não corresponde com a chave pública", + "Update peer failed when updating Pre-Shared Key": "Atualização do peer falhou ao atualizar a Chave Pré-Compartilhada", + "Update peer failed when updating Allowed IPs": "Atualização do peer falhou ao atualizar os IPs Permitidos", + "Update peer failed when saving the configuration": "Atualização do peer falhou ao salvar a configuração", + "Peer data usage reset successfully": "Uso de dados do peer redefinido com sucesso", + "Peer download started": "Download do peer iniciado", + "Please specify one or more peers": "Especifique um ou mais peers", + "Share link failed to create. Reason: (.*)": "Erro ao criar link de compartilhamento. Motivo: $1", + "Link expire date updated": "Data de expiração do link atualizada", + "Link expire date failed to update. Reason: (.*)": "Erro ao atualizar a data de expiração do link. Motivo: $1", + "Peer job saved": "Job do peer salvo", + "Please specify job": "Especifique o job", + "Please specify peer and configuration": "Especifique o peer e a configuração", + "Peer job deleted": "Job do peer removido", + "API Keys function is successfully enabled": "Recurso de Chaves API está habilitado", + "API Keys function is successfully disabled": "Recurso de Chaves API está desabilitado", + "API Keys function is failed to enable": "Falha ao habilitar recurso de Chaves API", + "API Keys function is failed to disable": "Falha ao desabilitar recurso de Chaves API", + "WGDashboard API Keys function is disabled": "Recurso de Chaves de API do WGDashboard está desabilitada", + "WireGuard configuration path saved": "Caminho do arquivo de configuração WireGuard salvo", + "API Key deleted": "Chave de API removida", + "API Key created": "Chave de API criada", + "Sign in session ended, please sign in again": "Sessão encerrada. Por favor, entre novamente", + "Please specify an IP Address (v4/v6)": "Especifique um endereço IP (v4/v6)", + "Please provide ipAddress and count": "Especifique endereço IP e quantidade", + "Please provide ipAddress": "Especifique endereço IP", + "Dashboard Language": "Idioma do Painel", + "Dashboard language update failed": "Atualização do idioma do painel falhou", + "Peer Remote Endpoint": "Endpoint Remoto do Peer", + "New Configuration": "Nova Configuração", + "Configuration Name": "Nome de Configuração", + "Configuration name is invalid. Possible reasons:": "Nome de configuração é inválido. Possíveis razões:", + "Configuration name already exist\\.": "Nome de configuração já existe\\.", + "Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "Nome de configuração pode conter apenas 15 caracteres alfanuméricos, sublinhado, igual, mais, ponto e hífen.", + "Invalid Port": "Porta Inválida", + "Save Configuration": "Salvar Configuração", + "IP Address/CIDR is invalid": "Endereço IP/CIDR inválido", + "IP Address": "Endereço IP", + "Enter IP Address / Hostname": "Digite Endereço IP / Nome do Host", + "IP Address / Hostname": "Endereço IP / Nome do Host", + "Dashboard IP Address \\& Listen Port": "Endereço IP do Painel e Porta", + "Count": "Quantidade", + "Hop": "Salto", + "Average RTT \\(ms\\)": "RTT médio (ms)", + "Min RTT \\(ms\\)": "RTT mínimo (ms)", + "Max RTT \\(ms\\)": "RTT máximo (ms)", + "Geolocation": "Geolocalização", + "Is Alive": "Está Ativo", + "Average / Min / Max Round Trip Time": "Média / Mínimo / Máximo do Tempo de Ida e Volta (Round Trip)", + "Sent / Received / Lost Package": "Enviado / Recebido / Pacotes Perdidos", + "Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "É necessário reiniciar o WGDashboard para aplicar as mudanças de Endereço IP e Porta", + "Restore Configuration": "Restaurar Configuração", + "Step (.*)": "Passo (.*)", + "Select a backup you want to restore": "Selecione o backup que deseja restaurar", + "Click to change a backup": "Clique para alterar um backup", + "Selected Backup": "Backup Selecionado", + "You don't have any configuration to restore": "Você não tem configurações para restaurar", + "Help": "Ajuda", + "You can visit our: ": "Você pode visitar nosso: ", + "Official Documentation": "Documentação Oficial", + "Discord Server": "Servidor do Discord", + "Backup": "Backup", + "([0-9].*) Backups?": "([0-9].*) Backups?", + "Yes": "Sim", + "No": "Não", + "Backup not selected": "Backup não selecionado", + "Confirm \\& edit restore information": "Confirmar \\& editar informações de restauração", + "(.*) Available IP Address": "$1 endereço IP disponível", + "Database File": "Arquivo de Banco de Dados", + "Contain": "Contém", + "Restricted Peers?": "Peers Restritos?", + "Restore": "Restaurar", + "Restoring": "Restaurando", + "WGDashboard Settings": "Configurações do WGDashboard", + "Peers Settings": "Configurações dos Peers", + "WireGuard Configuration Settings": "Definições de Configuração WireGuard", + "Appearance": "Aparência", + "Theme": "Tema", + "Language": "Idioma", + "Account Settings": "Definições de Conta", + "Peer Default Settings": "Definições Padrão do Peer", + "Toggle When Start Up": "Ativar Quanto Iniciar", + "Other Settings": "Outras Definições", + "Select Peers": "Selecione Peers", + "Backup & Restore": "Backup e Restauração", + "Delete Configuration": "Remover Configuração", + "Create Backup": "Criar Backup", + "No backup yet, click the button above to create backup\\.": "Nenhum backup, clique no botão acima para criar um backup.", + "Are you sure to delete this backup\\?": "Tem certeza de que deseja remover este backup?", + "Are you sure to restore this backup\\?": "Tem certeza de que deseja restaurar este backup?", + "Backup Date": "Data do Backup", + "File": "Arquivo", + "Are you sure to delete this configuration\\?": "Tem certeza de que deseja remover esta configuração?", + "Once you deleted this configuration\\:": "Uma vez que remover esta configuração:", + "All connected peers will get disconnected": "Todos peers conectados serão desconectados", + "Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "Ambos tabela do banco de dados e arquivo de configuração (.conf) desta configuração serão removidos", + "Checking backups...": "Verificando backups...", + "This configuration have ([0-9].*) backups": "Esta configuração tem $1 backups", + "This configuration have no backup": "Esta configuração não tem backups", + "If you're sure, please type in the configuration name below and click Delete": "Se você tem certeza, confirme o nome da configuração abaixo e clique em Remover", + "Select All": "Selecionar Todos", + "Clear Selection": "Limpar Seleção", + "([0-9].*) Peers?": "$1 Peers?", + "Download": "Baixar", + "Downloading": "Baixando", + "Download Finished": "Download Concluído", + "Done": "Pronto", + "Are you sure to delete": "Tem certeza de que deseja remover", + "Are you sure to delete this peer\\?": "Tem certeza de que deseja remover este peer?", + "Configuration deleted": "Configuração removida", + "Configuration saved": "Configuração salva", + "WGDashboard language update failed": "Falha ao atualizar idioma do WGDashboard", + "Configuration restored": "Configuração restaurada", + "Allowed IP already taken by another peer": "Endereço IP já está em uso por outro peer", + "Failed to allow access of peer (.*)": "Falha ao permitir acesso ao peer $1", + "Failed to save configuration through WireGuard": "Falha ao salvar configuração pelo WGDashboard", + "Allow access successfully": "Acesso permitido com sucesso", + "Deleted ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) removido(s)", + "Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) removido(s) com sucesso. Falha ao remover $2 peer(s)", + "Restricted ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) restringido(s)", + "Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) restringido(s) com sucesso. Falha ao restringir $2 peer(s)", + "Display As": "Mostrar Como", + "List": "Lista", + "Grid": "Grid", + "Protocol": "Protocolo", + "Open File": "Abrir Arquivo", + "Advanced Options": "Opções Avançadas", + "Allowed IPs Validation": "Validação de IPs Permitidos", + "Update Name": "Atualizar Nome", + "To update this configuration's name, WGDashboard will execute the following operations:": "Para atualizar este nome de configuração, o WGDashboard vaoi executar as seguintes operações:", + "Duplicate current configuration's database table and \\.conf file with the new name": "Duplicar tabela do banco de dados e arquivo .conf da configuração atual com novo nome", + "Delete current configuration's database table and \\.conf file": "Remover tabela do banco de dados e arquivo .conf da configuração atual", + "Danger Zone": "Zona de Perigo", + "Configuration File": "Arquivo de Configuração", + "Edit Raw Configuration File": "Editar Conteúdo do Arquivo de Configuração", + "Peer Configuration File": "Arquivo de Configuração do Peer", + "Share with Email": "Compartilhar com Email", + "Email Account": "Conta de Email", + "Ready": "Pronto", + "Port": "Porta", + "Encryption": "Criptografia", + "No Encryption": "Sem Criptografia", + "Send From": "Enviar de", + "Send Test Email": "Enviar Email de Teste", + "Email Body Template": "Modelo de Corpo de Email", + "Live Preview": "Prévia ao vivo", + "Include configuration file as an attachment": "Incluir arquivo de configuração como anexo", + "Send": "Enviar", + "Sending\\.\\.\\.": "Enviando...", + "Email sent successfully!": "Email enviado com sucesso!", + "AmneziaWG Peer Setting": "Definições de Peer do AmneziaWG", + "System Status": "Status do Sistema", + "CPU": "CPU", + "Memory": "Memória", + "Swap Memory": "Memória Swap", + "Processes": "Processos", + "CPU Usage": "Uso de CPU", + "Memory Usage": "Uso de Memória", + "Swap Memory Usage": "Uso de Memória Swap", + "Network": "Rede", + "([0-9]{1,}) Interfaces": "$1 Interfaces", + "Storage": "Armazenamento", + "([0-9]{1,}) Partitions": "$1 Repartições", + "(.*) Used": "$1 Usado", + "Untitled Peer": "Peer Sem Nome", + "Who are you sending to\\?": "Para quem você está enviando?", + "What\\'s the subject\\?": "Qual o título?", + "What\\'s the body\\?": "Qual a mensagem?" +} \ No newline at end of file