Selaa lähdekoodia

Merge pull request #262 from diogotcorreia/i18n-pt

Add Portuguese Translations
Kailash Nadh 4 vuotta sitten
vanhempi
commit
28b616abd0
2 muutettua tiedostoa jossa 439 lisäystä ja 8 poistoa
  1. 8 8
      i18n/en.json
  2. 431 0
      i18n/pt.json

+ 8 - 8
i18n/en.json

@@ -282,7 +282,7 @@
     "settings.general.fromEmail": "Default `from` email",
     "settings.general.fromEmailHelp": "Default `from` e-mail to show on outgoing campaign e-mails. This can be changed per campaign.",
     "settings.general.language": "Language",
-    "settings.general.logoURL": "Root URL",
+    "settings.general.logoURL": "Logo URL",
     "settings.general.logoURLHelp": "(Optional) full URL to the static logo to be displayed on user facing view such as the unsubscription page.",
     "settings.general.name": "General",
     "settings.general.rootURL": "Root URL",
@@ -306,14 +306,14 @@
     "settings.media.upload.uri": "Upload URI",
     "settings.media.upload.uriHelp": "Upload URI that is visible to the outside world. The media uploaded to upload_path will be publicly accessible under {root_url}, for instance, https://listmonk.yoursite.com/uploads.",
     "settings.messengers.maxConns": "Max. connections",
-    "settings.messengers.maxConnsHelp": "Maximum concurrent connections to the SMTP server.",
+    "settings.messengers.maxConnsHelp": "Maximum concurrent connections to the server.",
     "settings.messengers.messageDiscard": "Discard changes?",
     "settings.messengers.messageSaved": "Settings saved. Reloading app ...",
     "settings.messengers.name": "Messengers",
     "settings.messengers.nameHelp": "eg: my-sms. Alphanumeric / dash.",
     "settings.messengers.password": "Password",
     "settings.messengers.retries": "Retries",
-    "settings.messengers.retriesHelp": "Number of times to rety when a message fails.",
+    "settings.messengers.retriesHelp": "Number of times to retry when a message fails.",
     "settings.messengers.skipTLSHelp": "Skip hostname check on the TLS certificate.",
     "settings.messengers.timeout": "Idle timeout",
     "settings.messengers.timeoutHelp": "Time to wait for new activity on a connection before closing it and removing it from the pool (s for second, m for minute).",
@@ -353,7 +353,7 @@
     "settings.smtp.heloHost": "HELO hostname",
     "settings.smtp.heloHostHelp": "Optional. Some SMTP servers require a FQDN in the hostname. By default, HELLOs go with `localhost`. Set this if a custom hostname should be used.",
     "settings.smtp.host": "Host",
-    "settings.smtp.hostHelp": "SMTP server\"s host address.",
+    "settings.smtp.hostHelp": "SMTP server's host address.",
     "settings.smtp.idleTimeout": "Idle timeout",
     "settings.smtp.idleTimeoutHelp": "Time to wait for new activity on a connection before closing it and removing it from the pool (s for second, m for minute).",
     "settings.smtp.maxConns": "Max. connections",
@@ -362,9 +362,9 @@
     "settings.smtp.password": "Password",
     "settings.smtp.passwordHelp": "Enter to change",
     "settings.smtp.port": "Port",
-    "settings.smtp.portHelp": "SMTP server\"s port.",
+    "settings.smtp.portHelp": "SMTP server's port.",
     "settings.smtp.retries": "Retries",
-    "settings.smtp.retriesHelp": "Number of times to rety when a message fails.",
+    "settings.smtp.retriesHelp": "Number of times to retry when a message fails.",
     "settings.smtp.setCustomHeaders": "Set custom headers",
     "settings.smtp.skipTLS": "Skip TLS verification",
     "settings.smtp.skipTLSHelp": "Skip hostname check on the TLS certificate.",
@@ -372,7 +372,7 @@
     "settings.smtp.tlsHelp": "Enable STARTTLS.",
     "settings.smtp.username": "Username",
     "settings.smtp.waitTimeout": "Wait timeout",
-    "settings.smtp.waitTimeoutHelp": "Time to wait for new activity on a connection before closing it and removing it from the pool(s for second, m for minute).",
+    "settings.smtp.waitTimeoutHelp": "Time to wait for new activity on a connection before closing it and removing it from the pool (s for second, m for minute).",
     "settings.title": "Settings",
     "subscribers.advancedQuery": "Advanced",
     "subscribers.advancedQueryHelp": "Partial SQL expression to query subscriber attributes",
@@ -399,7 +399,7 @@
     "subscribers.listChangeApplied": "List change applied.",
     "subscribers.lists": "Lists",
     "subscribers.listsHelp": "Lists from which subscribers have unsubscribed themselves cannot be removed.",
-    "subscribers.listsPlaceholder": "Lists to subscriber to",
+    "subscribers.listsPlaceholder": "Lists to subscribe to",
     "subscribers.manageLists": "Manage lists",
     "subscribers.markUnsubscribed": "Mark as unsubscribed",
     "subscribers.newSubscriber": "New subscriber",

+ 431 - 0
i18n/pt.json

@@ -0,0 +1,431 @@
+{
+    "_.code": "pt",
+    "_.name": "Portuguese (pt)",
+    "admin.errorMarshallingConfig": "Erro ao ler o config: {error}",
+    "campaigns.addAltText": "Adicionar mensagem alternativa em texto simples",
+    "campaigns.cantUpdate": "Não é possível atualizar uma campanha em curso ou terminada.",
+    "campaigns.clicks": "Cliques",
+    "campaigns.confirmDelete": "Eliminar {name}",
+    "campaigns.confirmSchedule": "A campanha irá começar automaticamente na data e hora agendadas. Agendar agora?",
+    "campaigns.confirmSwitchFormat": "O conteúdo pode perder a formatação. Continuar?",
+    "campaigns.content": "Conteúdo",
+    "campaigns.contentHelp": "Conteúdo aqui",
+    "campaigns.continue": "Continuar",
+    "campaigns.copyOf": "Cópia de {name}",
+    "campaigns.dateAndTime": "Dia e hora",
+    "campaigns.ended": "Terminada",
+    "campaigns.errorSendTest": "Erro ao enviar teste: {error}",
+    "campaigns.fieldInvalidBody": "Erro ao compilar corpo da campanha: {error}",
+    "campaigns.fieldInvalidFromEmail": "`from_email` inválido.",
+    "campaigns.fieldInvalidListIDs": "Lista de IDs inválida.",
+    "campaigns.fieldInvalidMessenger": "Mensageiro {name} desconhecido.",
+    "campaigns.fieldInvalidName": "Tamanho de nome inválido.",
+    "campaigns.fieldInvalidSendAt": "Data agendada deve ser no futuro.",
+    "campaigns.fieldInvalidSubject": "Tamanho de corpo inválido.",
+    "campaigns.fromAddress": "Endereço do Remetente",
+    "campaigns.fromAddressPlaceholder": "O Teu Nome <noreply@oteusite.com>",
+    "campaigns.invalid": "Campanha inválida",
+    "campaigns.needsSendAt": "A campanha necessita de uma data para ser agendada.",
+    "campaigns.newCampaign": "Nova campanha",
+    "campaigns.noKnownSubsToTest": "Não existem subscritores para testar.",
+    "campaigns.noOptinLists": "Não foram encontradas listas opt-in para criar a campanha.",
+    "campaigns.noSubs": "Não existem subscritores nas listas selecionadas para criar a campanha.",
+    "campaigns.noSubsToTest": "Não existem subscritores para usar.",
+    "campaigns.notFound": "Campanha não encontrada.",
+    "campaigns.onlyActiveCancel": "Apenas campanhas ativas podem ser canceladas.",
+    "campaigns.onlyActivePause": "Apenas campanhas ativas podem ser pausadas.",
+    "campaigns.onlyDraftAsScheduled": "Apenas rascunhos de campanhas podem ser agendadas.",
+    "campaigns.onlyPausedDraft": "Apenas campanhas pausadas e rascunhos podem ser iniciadas.",
+    "campaigns.onlyScheduledAsDraft": "Apenas campanhas agendadas podem ser guardadas como rascunhos.",
+    "campaigns.pause": "Pausar",
+    "campaigns.plainText": "Texto simples",
+    "campaigns.preview": "Pré-visualizar",
+    "campaigns.progress": "Progresso",
+    "campaigns.queryPlaceholder": "Nome ou assunto",
+    "campaigns.rawHTML": "HTML simples",
+    "campaigns.removeAltText": "Remover mensagem alternativa em texto simples",
+    "campaigns.richText": "Texto rico",
+    "campaigns.schedule": "Agendar campanha",
+    "campaigns.scheduled": "Agendada",
+    "campaigns.send": "Enviar",
+    "campaigns.sendLater": "Enviar mais tarde",
+    "campaigns.sendTest": "Enviar mensagem de teste",
+    "campaigns.sendTestHelp": "Clica Enter após escrever o endereço de múltiplos destinatários. Os endereços devem pertencer a subscritores existentes.",
+    "campaigns.sendToLists": "Listas a enviar para",
+    "campaigns.sent": "Enviada",
+    "campaigns.start": "Começar campanha",
+    "campaigns.started": "\"{name}\" começou",
+    "campaigns.startedAt": "Começou",
+    "campaigns.stats": "Estatísticas",
+    "campaigns.status.cancelled": "Cancelada",
+    "campaigns.status.draft": "Rascunho",
+    "campaigns.status.finished": "Terminada",
+    "campaigns.status.paused": "Em Pausa",
+    "campaigns.status.running": "Em progresso",
+    "campaigns.status.scheduled": "Agendada",
+    "campaigns.statusChanged": "\"{name}\" está {status}",
+    "campaigns.subject": "Assunto",
+    "campaigns.testEmails": "E-mails",
+    "campaigns.testSent": "Mensagem de teste enviada",
+    "campaigns.timestamps": "Carimbo de hora",
+    "campaigns.views": "Visualizações",
+    "dashboard.campaignViews": "Vista de campanhas",
+    "dashboard.linkClicks": "Cliques nos links",
+    "dashboard.messagesSent": "Mensagens enviadas",
+    "dashboard.orphanSubs": "Órfãos",
+    "email.data.info": "Uma cópia de todos os seus dados está em anexo em formato JSON. Pode ser visualizada num editor de texto.",
+    "email.data.title": "Os seus dados",
+    "email.optin.confirmSub": "Confirmar subscrição",
+    "email.optin.confirmSubHelp": "Confirme a sua subscrição clicando no botão abaixo.",
+    "email.optin.confirmSubInfo": "Foi adicionado às seguintes listas:",
+    "email.optin.confirmSubTitle": "Confirmar subscrição",
+    "email.optin.confirmSubWelcome": "Olá {name},",
+    "email.optin.privateList": "Lista privada",
+    "email.status.campaignReason": "Motivo",
+    "email.status.campaignSent": "Enviada",
+    "email.status.campaignTitle": "Atualização de campanha",
+    "email.status.importFile": "Ficheiro",
+    "email.status.importRecords": "Registos",
+    "email.status.importTitle": "Importar atualização",
+    "email.status.status": "Estado",
+    "email.unsub": "Cancelar subscrição",
+    "email.unsubHelp": "Não quer receber estes e-mails?",
+    "forms.formHTML": "Formulário HTML",
+    "forms.formHTMLHelp": "Usa o seguinte código HTML para mostrar um formulário de subscrição numa página externa. O formulário deve ter um campo de email e um ou mais campos `l` (UUID de listas). O campo de nome é opcional.",
+    "forms.publicLists": "Listas públicas",
+    "forms.publicSubPage": "Página pública de subscrição",
+    "forms.selectHelp": "Seleciona listas para adicionar ao formulário.",
+    "forms.title": "Formulários",
+    "globals.buttons.add": "Adicionar",
+    "globals.buttons.addNew": "Adicionar novo",
+    "globals.buttons.cancel": "Cancelar",
+    "globals.buttons.clone": "Duplicar",
+    "globals.buttons.close": "Fechar",
+    "globals.buttons.continue": "Continuar",
+    "globals.buttons.delete": "Eliminar",
+    "globals.buttons.edit": "Editar",
+    "globals.buttons.enabled": "Ativo",
+    "globals.buttons.learnMore": "Saber mais",
+    "globals.buttons.new": "Novo",
+    "globals.buttons.ok": "Ok",
+    "globals.buttons.remove": "Remover",
+    "globals.buttons.save": "Guardar",
+    "globals.buttons.saveChanges": "Guardar alterações",
+    "globals.days.1": "Seg",
+    "globals.days.2": "Ter",
+    "globals.days.3": "Qua",
+    "globals.days.4": "Qui",
+    "globals.days.5": "Sex",
+    "globals.days.6": "Sáb",
+    "globals.days.7": "Dom",
+    "globals.fields.createdAt": "Criado a",
+    "globals.fields.id": "ID",
+    "globals.fields.name": "Nome",
+    "globals.fields.status": "Estado",
+    "globals.fields.type": "Tipo",
+    "globals.fields.updatedAt": "Atualizado a",
+    "globals.fields.uuid": "UUID",
+    "globals.messages.confirm": "Tens a certeza?",
+    "globals.messages.created": "\"{name}\" criado",
+    "globals.messages.deleted": "\"{name}\" eliminado",
+    "globals.messages.emptyState": "Não há nada aqui",
+    "globals.messages.errorCreating": "Erro ao criar {name}: {error}",
+    "globals.messages.errorDeleting": "Erro ao eliminar {name}: {error}",
+    "globals.messages.errorFetching": "Erro ao carregar {name}: {error}",
+    "globals.messages.errorUUID": "Erro ao gerar UUID: {error}",
+    "globals.messages.errorUpdating": "Erro ao atualizar {name}: {error}",
+    "globals.messages.invalidID": "ID inválido",
+    "globals.messages.invalidUUID": "UUID inválido",
+    "globals.messages.notFound": "{name} não encontrado",
+    "globals.messages.passwordChange": "Insere um valor para alterar",
+    "globals.messages.updated": "\"{name}\" atualizado",
+    "globals.months.1": "Jan",
+    "globals.months.10": "Out",
+    "globals.months.11": "Nov",
+    "globals.months.12": "Dez",
+    "globals.months.2": "Fev",
+    "globals.months.3": "Mar",
+    "globals.months.4": "Abr",
+    "globals.months.5": "Mai",
+    "globals.months.6": "Jun",
+    "globals.months.7": "Jul",
+    "globals.months.8": "Ago",
+    "globals.months.9": "Set",
+    "globals.terms.campaign": "Campanha | Campanhas",
+    "globals.terms.campaigns": "Campanha",
+    "globals.terms.dashboard": "Dashboard",
+    "globals.terms.list": "Lista | Listas",
+    "globals.terms.lists": "Listas",
+    "globals.terms.media": "Mídia | Mídia",
+    "globals.terms.messenger": "Mensageiro | Mensageiros",
+    "globals.terms.messengers": "Mensageiros",
+    "globals.terms.settings": "Definições",
+    "globals.terms.subscriber": "Subscritor | Subcritores",
+    "globals.terms.subscribers": "Subscritores",
+    "globals.terms.tag": "Etiqueta | Etiquetas",
+    "globals.terms.tags": "Etiquetas",
+    "globals.terms.template": "Modelo | Modelos",
+    "globals.terms.templates": "Modelo",
+    "import.alreadyRunning": "Uma importação já está em curso. Aguarda que termine ou cancela-a antes de tentares novamente.",
+    "import.blocklist": "Lista de bloqueio",
+    "import.csvDelim": "Delimitador CSV",
+    "import.csvDelimHelp": "O delimitador padrão é uma vírgula.",
+    "import.csvExample": "Exemplo CSV simples",
+    "import.csvFile": "Ficheiro CSV ou ZIP",
+    "import.csvFileHelp": "Clica ou arrasta um ficheiro CSV ou ZIP para aqui",
+    "import.errorCopyingFile": "Erro ao copiar ficheiro: {error}",
+    "import.errorProcessingZIP": "Erro ao processar ficheiro ZIP: {error}",
+    "import.errorStarting": "Erro ao começar importação: {error}",
+    "import.importDone": "Terminado",
+    "import.importStarted": "Importação iniciada",
+    "import.instructions": "Instruções",
+    "import.instructionsHelp": "Envia um ficheiro CSV ou ficheiro ZIP com um único CSV para importares subscritores em massa. O ficheiro CSV deve conter os seguintes cabeçalhos com os nomes de colunas exatos. attributes (opcional) deve ser uma string JSON válida, com aspas de escape duplo.",
+    "import.invalidDelim": "O delimitador deve ser um caractere único.",
+    "import.invalidFile": "Ficheiro inválido: {error}",
+    "import.invalidMode": "Modo inválido",
+    "import.invalidParams": "Parâmetros inválidos: {error}",
+    "import.listSubHelp": "Listas a subscrever.",
+    "import.mode": "Modo",
+    "import.overwrite": "Sobrescrever?",
+    "import.overwriteHelp": "Sobrescrever nome e atributos de subscritores existentes?",
+    "import.recordsCount": "{num} / {total} registos",
+    "import.stopImport": "Parar importação",
+    "import.subscribe": "Subscrever",
+    "import.title": "Importar subscritores",
+    "import.upload": "Upload",
+    "lists.confirmDelete": "Tens a certeza? Isto não elimina subscritores.",
+    "lists.confirmSub": "Confirmar subscrição(ões) para {name}",
+    "lists.invalidName": "Nome inválido",
+    "lists.newList": "Nova lista",
+    "lists.optin": "Opt-in",
+    "lists.optinHelp": "Double opt-in envia um email ao subscritor a pedir confirmação. Em listas double opt-in, as campanhas são apenas enviadas para subscritores confirmados.",
+    "lists.optinTo": "Opt-in a {name}",
+    "lists.optins.double": "Double opt-in",
+    "lists.optins.single": "Single opt-in",
+    "lists.sendCampaign": "Enviar campanha",
+    "lists.sendOptinCampaign": "Enviada campanha opt-in",
+    "lists.type": "Tipo",
+    "lists.typeHelp": "Listas públicas estão abertas para toda a gente se subscrever e os seus nomes podem aparecer em páginas públicas, como a página de gestão de subscrições.",
+    "lists.types.private": "Privado",
+    "lists.types.public": "Público",
+    "logs.title": "Logs (Histórico)",
+    "media.errorReadingFile": "Erro ao ler ficheiro: {error}",
+    "media.errorResizing": "Erro ao alterar tamanho da imagem: {error}",
+    "media.errorSavingThumbnail": "Erro ao guardar miniatura: {error}",
+    "media.errorUploading": "Erro ao enviar ficheiro: {error}",
+    "media.invalidFile": "Ficheiro inválido: {error}",
+    "media.title": "Mídia",
+    "media.unsupportedFileType": "Tipo de ficheiro não suportado ({type})",
+    "media.upload": "Upload",
+    "media.uploadHelp": "Clica ou arrasta uma ou mais imagens aqui",
+    "media.uploadImage": "Enviar imagens",
+    "menu.allCampaigns": "Todas as campanhas",
+    "menu.allLists": "Todas as listas",
+    "menu.allSubscribers": "Todos os subscritores",
+    "menu.dashboard": "Dashboard",
+    "menu.forms": "Formulários",
+    "menu.import": "Importar",
+    "menu.logs": "Logs",
+    "menu.media": "Mídia",
+    "menu.newCampaign": "Criar nova",
+    "menu.settings": "Definições",
+    "public.campaignNotFound": "A mensagem de email não foi encontrada.",
+    "public.confirmOptinSubTitle": "Confirmar subscrição",
+    "public.confirmSub": "Confirmar subscrição",
+    "public.confirmSubInfo": "Foi adicionado às seguintes listas:",
+    "public.confirmSubTitle": "Confirmar",
+    "public.dataRemoved": "As suas subscrições e todos os dados associados foram removidos.",
+    "public.dataRemovedTitle": "Dados removidos",
+    "public.dataSent": "Os seus dados foram-lhe enviados em anexo por email.",
+    "public.dataSentTitle": "Dados enviados por email",
+    "public.errorFetchingCampaign": "Error fetching e-mail message",
+    "public.errorFetchingEmail": "Mensagem de email não encontrada",
+    "public.errorFetchingLists": "Erro ao carregar listas. Por favor tente novamente.",
+    "public.errorProcessingRequest": "Erro ao processar pedido. Por favor tente novamente.",
+    "public.errorTitle": "Erro",
+    "public.invalidFeature": "That feature is not available",
+    "public.invalidLink": "Link inválido",
+    "public.noListsAvailable": "Não existem listas disponíveis para subscrever.",
+    "public.noListsSelected": "Não foram selecionadas listas válidas para subscrever.",
+    "public.noSubInfo": "There are no subscriptions to confirm",
+    "public.noSubTitle": "Sem subscrições",
+    "public.notFoundTitle": "Não encontrado",
+    "public.privacyConfirmWipe": "Tem a certeza que deseja apagar permanentemente todos os seus dados de subscrições?",
+    "public.privacyExport": "Exportar os seus dados",
+    "public.privacyExportHelp": "Uma cópia dos seus dados ser-lhe-á enviada por email.",
+    "public.privacyTitle": "Privacidade e dados",
+    "public.privacyWipe": "Apagar os seus dados",
+    "public.privacyWipeHelp": "Apagar permanentemente da base de dados todas as suas subscrições e dados relacionados.",
+    "public.sub": "Subscrever",
+    "public.subConfirmed": "Subscribed successfully",
+    "public.subConfirmedTitle": "Confirmado",
+    "public.subName": "Nome (opcional)",
+    "public.subNotFound": "Subscrição não encontrada.",
+    "public.subPrivateList": "Lista privada",
+    "public.subTitle": "Subscrever",
+    "public.unsub": "Cancelar subscrição",
+    "public.unsubFull": "Também cancelar subscrição de todos os emails futuros.",
+    "public.unsubHelp": "Quer cancelar a subscrição desta lista de emails?",
+    "public.unsubTitle": "Cancelar subscrição",
+    "public.unsubbedInfo": "A sua subscrição foi cancelada com sucesso.",
+    "public.unsubbedTitle": "Subscrição cancelada",
+    "public.unsubscribeTitle": "Cancelar subscrição da lista de emails",
+    "settings.duplicateMessengerName": "Nome duplicado do mensageiro: {name}",
+    "settings.errorEncoding": "Erro de definições de codificação: {error}",
+    "settings.errorNoSMTP": "Pelo menos um bloco SMTP deve estar ativo",
+    "settings.general.adminNotifEmails": "Emails de notificação de administração",
+    "settings.general.adminNotifEmailsHelp": "Lista separada por vírgulas dos endereços de email para os quais devem ser enviadas notificações de administração como updates importantes, conclusão de campanhas, falhas, etc.",
+    "settings.general.enablePublicSubPage": "Ativar página de subscrição pública",
+    "settings.general.enablePublicSubPageHelp": "Mostrar uma página de subscrição pública com todas as listas públicas para as pessoas se subscreverem.",
+    "settings.general.faviconURL": "URL do Favicon",
+    "settings.general.faviconURLHelp": "(Opcional) URL completo do favicon estático para ser mostrado nas janelas do utilizador, como a página de cancelamento de subscrição.",
+    "settings.general.fromEmail": "Endereço `de` padrão",
+    "settings.general.fromEmailHelp": "Email `de` padrão para usar em campanhas. Este pode ser alterado por campanha.",
+    "settings.general.language": "Linguagem",
+    "settings.general.logoURL": " Root URL",
+    "settings.general.logoURLHelp": "(Opcional) URL completo do logotipo para ser mostrado nas janelas do utilizador, como a página de cancelamento de subscrição.",
+    "settings.general.name": "Geral",
+    "settings.general.rootURL": "URL base",
+    "settings.general.rootURLHelp": "URL público da instalação (sem barra final).",
+    "settings.invalidMessengerName": "Nome de mensageiro inválido.",
+    "settings.media.provider": "Fornecedor",
+    "settings.media.s3.bucket": "Bucket",
+    "settings.media.s3.bucketPath": "Caminho do bucket",
+    "settings.media.s3.bucketPathHelp": "Caminho dentro do bucket para enviar ficheiros. Padrão é /",
+    "settings.media.s3.bucketType": "Tipo de bucket",
+    "settings.media.s3.bucketTypePrivate": "Privado",
+    "settings.media.s3.bucketTypePublic": "Público",
+    "settings.media.s3.key": "Chave de acesso AWS",
+    "settings.media.s3.region": "Região",
+    "settings.media.s3.secret": "Segredo de acesso AWS",
+    "settings.media.s3.uploadExpiry": "Validade do upload",
+    "settings.media.s3.uploadExpiryHelp": "(Opcional) Especifica TTL (em segundos) para o URL pré-assinado gerado. Apenas aplicável a buckets privados (s, m, h, d para segundos, minutos, horas e dias).",
+    "settings.media.title": "Upload de mídia",
+    "settings.media.upload.path": "Caminho de upload",
+    "settings.media.upload.pathHelp": "Caminho para a pasta onde será enviada a mídia.",
+    "settings.media.upload.uri": "URI de envio",
+    "settings.media.upload.uriHelp": "URI de envio que é visível ao mundo exterior. Toda a mídia enviada para o upload_path será publicamente acessível em {root_url}/{}, por exemplo, https://listmonk.oteusite.com/uploads.",
+    "settings.messengers.maxConns": "N. Max. Conexões",
+    "settings.messengers.maxConnsHelp": "Número máximo de conexões simultâneas ao servidor.",
+    "settings.messengers.messageDiscard": "Descartar alterações?",
+    "settings.messengers.messageSaved": "Definições guardadas. Recarregando aplicação ...",
+    "settings.messengers.name": "Mensageiros",
+    "settings.messengers.nameHelp": "eg: o-meu-sms. Alfanumérico / traço.",
+    "settings.messengers.password": "Palavra-passe",
+    "settings.messengers.retries": "Tentativas",
+    "settings.messengers.retriesHelp": "Número de vezes para tentar novamente quando uma mensagem falha.",
+    "settings.messengers.skipTLSHelp": "Saltar verificação do hostname no certificado TLS.",
+    "settings.messengers.timeout": "Tempo limite de inatividade",
+    "settings.messengers.timeoutHelp": "Tempo a esperar por nova atividade numa conexão antes de a fechar e removê-la da pool (s para segundo, m para minuto).",
+    "settings.messengers.url": "URL",
+    "settings.messengers.urlHelp": "URL base do servidor Postback.",
+    "settings.messengers.username": "Nome de utilizador",
+    "settings.performance.batchSize": "Tamanho do lote",
+    "settings.performance.batchSizeHelp": "O número de subscritores para ir buscar à base de dados numa só iteração. Cada iteração vai buscar subscritores à base de dados, envia-lhe mensagens, e depois segue para a nova iteração para ir buscar o lote seguinte. Isto deve idealmente ser maior do que a máxima taxa de transferência alcançável (simultaneidade * taxa de mensagens).",
+    "settings.performance.concurrency": "Simultaneidade",
+    "settings.performance.concurrencyHelp": "Número máximo de workers (threads) concurrentes que irão tentar enviar as mensagens simultaneamente.",
+    "settings.performance.maxErrThreshold": "Limite máximo de erros",
+    "settings.performance.maxErrThresholdHelp": "O número de erros (eg: timeouts SMTP ao enviar um email) uma campanha em curso pode tolerar antes de ser colocada em pausa para investigação manual ou intervenção. Colocar a 0 para nunca pausar.",
+    "settings.performance.messageRate": "Taxa de mensagens",
+    "settings.performance.messageRateHelp": "Número máximo de mensagens para serem enviadas por segundo num worker. Se simultaneidade = 10 e taxa de mensagens = 10, então até 10x10=100 mensagens podem ser enviadas por segundo. Isto, junto com a simultaneidade, deve ser ajustado de forma a manter o número de mensagens a ser enviadas por segundo abaixo do limite máximo do servidor, se existir.",
+    "settings.performance.name": "Desempenho",
+    "settings.performance.slidingWindow": "Ativar o limite de janela",
+    "settings.performance.slidingWindowDuration": "Duração",
+    "settings.performance.slidingWindowDurationHelp": "Duração do periodo de limite de janela (m para minuto, h para hora).",
+    "settings.performance.slidingWindowHelp": "Limitar o número total de mensagens que é enviado num determinado periodo. Ao alcançar este limite, as mensagens são impedidas de ser enviadas até ao fim da janela temporária.",
+    "settings.performance.slidingWindowRate": "Max. mensagens",
+    "settings.performance.slidingWindowRateHelp": "Número máximo de mensagens para enviar na duração da janela.",
+    "settings.privacy.allowBlocklist": "Permitir lista de bloqueio",
+    "settings.privacy.allowBlocklistHelp": "Permitir ao subscritores cancelar a subscrição de todas as listas de emails e marcar-se como bloqueados?",
+    "settings.privacy.allowExport": "Permitir exportação",
+    "settings.privacy.allowExportHelp": "Permitir aos subscritores exportar os dados coletados neles mesmos?",
+    "settings.privacy.allowWipe": "Permitir eliminação de dados",
+    "settings.privacy.allowWipeHelp": "Permitir aos subscritores eliminar todos os seus dados, incluindo as suas subscrições, da base de dados. Visualizações de campanhas e cliques em links também são removidos enquanto visualizações e contagem de clicks permanecem (sem nenhum subscritor associado) para que as estatísticas não sejam afetadas.",
+    "settings.privacy.individualSubTracking": "Tracking individual de subscritores",
+    "settings.privacy.individualSubTrackingHelp": "Track visualizações e clicked ao nível do subscritor. Quando desligado, visualizações e track de clicks continuam, mas sem estarem associadas a nenhum subscritor.",
+    "settings.privacy.listUnsubHeader": "Incluir header `List-Unsubscribe`",
+    "settings.privacy.listUnsubHeaderHelp": "Incluir headers de cancelamento de subscrição que permite aos clientes de email permitir ao utilizadores cancelar a subscrição num único clique.",
+    "settings.privacy.name": "Privacidade",
+    "settings.smtp.authProtocol": "Protocolo Autenticação",
+    "settings.smtp.customHeaders": "Headers customizados",
+    "settings.smtp.customHeadersHelp": "Array opcional de headers de email a incluir em todas as mensagens enviadas deste servidor. eg: [{\"X-Custom\": \"value\"}, {\"X-Custom2\": \"value\"}]",
+    "settings.smtp.enabled": "Ativo",
+    "settings.smtp.heloHost": "Hostname HELO",
+    "settings.smtp.heloHostHelp": "Opcional. Alguns servidores SMTP necessitam de um FQDN no hostname. Por padrão, HELLOs usam `localhost`. Coloca um hostname customizado se for necessario.",
+    "settings.smtp.host": "Host",
+    "settings.smtp.hostHelp": "O endereço host do servidor SMTP",
+    "settings.smtp.idleTimeout": "Tempo limite de inatividade",
+    "settings.smtp.idleTimeoutHelp": "Tempo a esperar por nova atividade numa conexão antes de a fechar e removê-la da pool (s para segundo, m para minuto).",
+    "settings.smtp.maxConns": "N. Max. Conexões",
+    "settings.smtp.maxConnsHelp": "Número máximo de conexões simultâneas ao servidor SMTP.",
+    "settings.smtp.name": "SMTP",
+    "settings.smtp.password": "Palavra-passe",
+    "settings.smtp.passwordHelp": "Escreve aqui para alterar",
+    "settings.smtp.port": "Porta",
+    "settings.smtp.portHelp": "Porta do servidor SMTP",
+    "settings.smtp.retries": "Tentativas",
+    "settings.smtp.retriesHelp": "Número de vezes para tentar novamente quando uma mensagem falha.",
+    "settings.smtp.setCustomHeaders": "Colocar headers customizados",
+    "settings.smtp.skipTLS": "Saltar verificação TLS",
+    "settings.smtp.skipTLSHelp": "Saltar verificação do hostname no certificado TLS.",
+    "settings.smtp.tls": "TLS",
+    "settings.smtp.tlsHelp": "Ativar STARTTLS.",
+    "settings.smtp.username": "Nome de utilizador",
+    "settings.smtp.waitTimeout": "Tempo limite de espera",
+    "settings.smtp.waitTimeoutHelp": "Tempo a esperar por nova atividade numa conexão antes de a fechar e removê-la da pool (s para segundo, m para minuto).",
+    "settings.title": "Definições",
+    "subscribers.advancedQuery": "Avançado",
+    "subscribers.advancedQueryHelp": "Expressão SQL parcial para consultar atributos de subscritores",
+    "subscribers.attribs": "Atributos",
+    "subscribers.attribsHelp": "Atributos estão definidos como uma mapa JSON, por exemplo:",
+    "subscribers.blocklistedHelp": "Subscritores bloqueados nunca irão receber emails.",
+    "subscribers.confirmBlocklist": "Adicionar {num} subscritor(es) à lista de bloqueio?",
+    "subscribers.confirmDelete": "Eliminar {num} subscritor(es)?",
+    "subscribers.confirmExport": "Exportar {num} subscritor(es)?",
+    "subscribers.downloadData": "Descarregar dados",
+    "subscribers.email": "E-mail",
+    "subscribers.emailExists": "E-mail já existe.",
+    "subscribers.errorBlocklisting": "Erro ao bloquear subscritores: {error}",
+    "subscribers.errorInvalidIDs": "Foram dados um ou mais IDs inválidos: {error}",
+    "subscribers.errorNoIDs": "Não foram dados IDs.",
+    "subscribers.errorNoListsGiven": "Não foram dadas listas.",
+    "subscribers.errorPreparingQuery": "Erro ao preparar query dos subscritores: {error}",
+    "subscribers.errorSendingOptin": "Erro ao enviar email opt-in.",
+    "subscribers.export": "Exportar",
+    "subscribers.invalidAction": "Ação inválida.",
+    "subscribers.invalidEmail": "Email inválida.",
+    "subscribers.invalidJSON": "JSON inválido nos atributos.",
+    "subscribers.invalidName": "Nome inválido.",
+    "subscribers.listChangeApplied": "Alteração à lista aplicada.",
+    "subscribers.lists": "Listas",
+    "subscribers.listsHelp": "Listas nas quais o/a subscritor/a cancelou a sua subscrição não podem ser removidas.",
+    "subscribers.listsPlaceholder": "Listas a subscrever",
+    "subscribers.manageLists": "Gerir listas",
+    "subscribers.markUnsubscribed": "Marcar como não subscrito",
+    "subscribers.newSubscriber": "Novo subscritor",
+    "subscribers.numSelected": "{num} subscritor(es) selecionados",
+    "subscribers.optinSubject": "Confirmar subscrição",
+    "subscribers.query": "Query",
+    "subscribers.queryPlaceholder": "E-mail ou nome",
+    "subscribers.reset": "Repor",
+    "subscribers.selectAll": "Selecionar todos os {num}",
+    "subscribers.status.blocklisted": "Bloqueados",
+    "subscribers.status.confirmed": "Confirmado",
+    "subscribers.status.enabled": "Ativo",
+    "subscribers.status.subscribed": "Subscrito",
+    "subscribers.status.unconfirmed": "Não confirmado",
+    "subscribers.status.unsubscribed": "Não subscrito",
+    "subscribers.subscribersDeleted": "{num} subscritor(es) eliminados",
+    "templates.cantDeleteDefault": "Não é possível eliminar o template padrão",
+    "templates.default": "Padrão",
+    "templates.dummyName": "Campanha fictícia",
+    "templates.dummySubject": "Assunto da campanha fictícia",
+    "templates.errorCompiling": "Erro ao compilar template: {error}",
+    "templates.errorRendering": "Erro ao renderizar mensagem: {error}",
+    "templates.fieldInvalidName": "Tamanho inválido para o nome.",
+    "templates.makeDefault": "Marcar como padrão",
+    "templates.newTemplate": "Novo template",
+    "templates.placeholderHelp": "O placeholder {placeholder} deve aparecer exatamente uma vez no template.",
+    "templates.preview": "Pré-visualização",
+    "templates.rawHTML": "HTML Simples"
+}