diff --git a/dashboard/public/translation/en.json b/dashboard/public/translation/en.json
index 282b14ffc..9175ff652 100644
--- a/dashboard/public/translation/en.json
+++ b/dashboard/public/translation/en.json
@@ -900,7 +900,12 @@
"subscriptionSetupAction": "Upgrade to Premium",
"subscriptionChangeAction": "Manage Subscription",
"subscriptionReactivateAction": "Reactivate Subscription",
- "emailNotVerified": "Email not yet verified"
+ "emailNotVerified": "Email not yet verified",
+ "resetDialog": {
+ "title": "Really reset Cloudron ID",
+ "description": "This will disconnect the Cloudron from the current cloudron.io account."
+ },
+ "resetAction": "Reset Registration"
},
"timezone": {
"title": "System Time Zone",
diff --git a/dashboard/public/translation/nl.json b/dashboard/public/translation/nl.json
index c6d47ca45..bf0c6ce7b 100644
--- a/dashboard/public/translation/nl.json
+++ b/dashboard/public/translation/nl.json
@@ -1474,7 +1474,7 @@
}
},
"system": {
- "title": "Statistieken",
+ "title": "Systeem Informatie",
"diskUsage": {
"usageInfo": "{{ available | prettyDiskSize }} van {{ size | prettyDiskSize }} beschikbaar",
"diskContent": "Deze {{ type }} schijf bevat",
@@ -1491,7 +1491,7 @@
"graphSubtext": "Alleen apps die meer dan {{ threshold }} geheugen gebruiken worden getoond"
},
"cpuUsage": {
- "title": "CPU-gebruik",
+ "title": "CPU",
"graphTitle": "Percentage",
"graphSubtext": "Alleen apps die meer dan {{ threshold }} van de CPU gebruiken worden getoond"
},
diff --git a/dashboard/public/translation/pt.json b/dashboard/public/translation/pt.json
index dec7c9917..239394ce6 100644
--- a/dashboard/public/translation/pt.json
+++ b/dashboard/public/translation/pt.json
@@ -32,7 +32,7 @@
"clearAll": "Limpar Tudo"
},
"apps": {
- "count": "Total aplicações: {{ count }}"
+ "count": "Total de aplicações: {{ count }}"
}
},
"main": {
@@ -209,7 +209,9 @@
"setup2FA": "Configurar Dois Fatores",
"title": "Ativar Autenticação de Dois Fatores",
"token": "Código",
- "enable": "Ativar"
+ "enable": "Ativar",
+ "description": "O seu administrador do Cloudron exigiu que todos os membros ativassem a autenticação de dois fatores. Você não poderá aceder ao painel até ativar a 2FA.",
+ "authenticatorAppDescription": "Utilize o Google Authenticator (Android, iOS), autenticador FreeOTP (Android, iOS) ou uma aplicação de TOTP similar para digitalizar o segredo."
},
"apiTokens": {
"revokeTokenTooltip": "Revogar Código",
@@ -221,7 +223,10 @@
"scope": "Âmbito",
"readonly": "Apenas de leitura",
"readwrite": "Ler e Gravar",
- "name": "Nome"
+ "name": "Nome",
+ "description": "Utilize estes códigos de acesso pessoais para autenticar a API do Cloudron",
+ "noTokensPlaceholder": "Sem Códigos da API criados",
+ "allowedIpRanges": "IPs Permitidos"
},
"changeDisplayName": {
"title": "Alterar o seu nome a exibir",
@@ -233,16 +238,22 @@
"name": "Nome da Palavra-passe",
"title": "Criar Palavra-passe da Aplicação",
"errorNameRequired": "É necessário um nome",
- "app": "Aplicação"
+ "app": "Aplicação",
+ "description": "Utilize a palavra-passe seguinte para se autenticar na aplicação:",
+ "copyNow": "Por favor, copie a palavra-passe agora. Esta não será mostrada novamente por motivos de segurança."
},
"createApiToken": {
"name": "Nome do Código de API",
"title": "Criar Código de API",
"errorNameRequired": "É necessário um nome",
- "description": "Novo código de API:"
+ "description": "Novo código de API:",
+ "generateToken": "Gerar Código de API",
+ "access": "Acesso de API",
+ "copyNow": "Por favor, copie o código da API agora. Este não será mostrado novamente por motivos de segurança."
},
"passwordResetNotification": {
- "title": "Redefinição da palavra-passe bem-sucedida"
+ "title": "Redefinição da palavra-passe bem-sucedida",
+ "body": "Mensagem enviada para {{ email }}"
},
"title": "Perfil",
"changeAvatar": {
@@ -263,23 +274,38 @@
"errorEmailInvalid": "O endereço de correio eletrónico não é válido",
"password": "Palavra-passe para confirmação",
"errorWrongPassword": "Palavra-passe errada",
- "errorPasswordRequired": "É necessária uma palavra-passe"
+ "errorPasswordRequired": "É necessária uma palavra-passe",
+ "title": "Alterar endereço de correio eletrónico da recuperação de palavra-passe",
+ "email": "Novo endereço de correio eletrónico da recuperação de palavra-passe"
},
"loginTokens": {
"title": "Códigos de Autenticação",
- "logoutAll": "Terminar Sessão de Todos"
+ "logoutAll": "Terminar Sessão de Todos",
+ "description": "Tem {{ webadminTokenCount}} código(s) da Web ativo(s) e {{ cliTokenCount }} código(s) de CLI."
},
"appPasswords": {
"title": "Palavras-passe da Aplicação",
"app": "Aplicação",
"name": "Nome",
"newPassword": "Nova Palavra-passe",
- "deletePasswordTooltip": "Eliminar Palavra-passe"
+ "deletePasswordTooltip": "Eliminar Palavra-passe",
+ "noPasswordsPlaceholder": "Nenhumas Palavras-passe de Aplicação criadas",
+ "description": "As palavras-passe da aplicação são uma medida de segurança para proteger a sua conta de utilizador Cloudron. Se precisar de aceder a uma aplicação Cloudron a partir de uma aplicação móvel ou cliente não fidedigno, pode iniciar a sessão com o seu nome de utilizador e a palavra-passe alternativa gerada aqui."
},
"changePasswordAction": "Alterar Palavra-passe",
"disable2FAAction": "Desativar 2FA",
"enable2FAAction": "Ativar 2FA",
- "passwordResetAction": "Eu não me lembro da minha palavra-passe"
+ "passwordResetAction": "Eu não me lembro da minha palavra-passe",
+ "removeAppPassword": {
+ "title": "Deseja remover a palavra-passe {{ name }}?"
+ },
+ "removeApiToken": {
+ "title": "Deseja remover o código {{ name }}?"
+ },
+ "passwordRecoveryEmail": "Mensagem de recuperação da palavra-passe",
+ "changeBackgroundImage": {
+ "title": "Definir Imagem de Fundo"
+ }
},
"users": {
"exposedLdap": {
@@ -291,7 +317,8 @@
"secret": {
"label": "Associar Palavra-passe",
"url": "URL do Servidor"
- }
+ },
+ "description": "Cloudron pode atuar como um servidor de diretoria do utilizador central para as aplicações externas."
},
"users": {
"superadminTooltip": "Este utilizador é um super administrador",
@@ -334,7 +361,14 @@
"errorInvalidUsername": "Não é um nome de utilizador válido",
"displayName": "Nome a Exibir",
"email": "E-mail",
- "primaryEmail": "E-mail principal"
+ "primaryEmail": "E-mail principal",
+ "usernamePlaceholder": "Opcional. Se não for fornecido, o utilizador pode escolher durante o registo",
+ "ldapGroups": "Grupos de LDAP",
+ "errorDisplayNameRequired": "O nome é necessário",
+ "activeCheckbox": "O utilizador está ativo",
+ "displayNamePlaceholder": "Opcional. Se não fornecido, o utilizador pode fornecer durante o registo",
+ "fallbackEmailPlaceholder": "Opcional. Se não especificado, será utilizado o e-mail principal",
+ "recoveryEmail": "Mensagem de recuperação da palavra-passe"
},
"passwordResetDialog": {
"description": "A seguinte hiperligação de redefinir palavra-passe foi enviada para {{ email }}:",
@@ -345,7 +379,10 @@
"reset2FAAction": "Redefinir 2FA",
"emailSent": "Enviada",
"title": "Redefinir palavra-passe para {{ username }}",
- "sendEmailLinkAction": "Enviar mensagem com hiperligação para o utilizador"
+ "sendEmailLinkAction": "Enviar mensagem com hiperligação para o utilizador",
+ "descriptionLink": "Copiar hiperligação de redefinição da palavra-passe",
+ "descriptionEmail": "Enviar hiperligação de redefinição da palavra-passe",
+ "resetLinkExplanation": "Utilize isto para enviar uma mensagem com a hiperligação de redefinir a palavra-passe para o endereço de e-mail respondido do utilizador - {{ email }}."
},
"editUserDialog": {
"externalLdapWarning": "Este utilizador é sincronizado a partir da diretoria LDAP externa.",
@@ -361,7 +398,9 @@
"title": "Convidar {{ username }}",
"newLinkAction": "Convidar agora o utilizador",
"sendAction": "Enviar Mensagem",
- "descriptionLink": "Copiar hiperligação de convite"
+ "descriptionLink": "Copiar hiperligação de convite",
+ "inviteLinkExplanation": "Utilize isto para gerar uma nova hiperligação de convite. A hiperligação também será enviada para o utilizador e irá redefinir a palavra-passe.",
+ "description": "A seguinte hiperligação de convite foi enviada para {{ email }}:"
},
"externalLdap": {
"autocreateUsersOnLogin": "Criar utilizadores automaticamente ao iniciar a sessão",
@@ -374,11 +413,24 @@
"syncAction": "Sincronizar",
"configureAction": "Configurar",
"providerOther": "Outro",
- "providerDisabled": "Desativado"
+ "providerDisabled": "Desativado",
+ "showLogsAction": "Mostrar Registos",
+ "subscriptionRequiredAction": "Configurar Subscrição Agora",
+ "noopInfo": "A autenticação LDAP não está configurada.",
+ "title": "Ligar uma Diretoria Externa",
+ "acceptSelfSignedCert": "Aceitar certificado Assinado Automaticamente",
+ "groupnameField": "Campo do Nome do Grupo",
+ "errorSelfSignedCert": "O servidor está a utilizar um certificado inválido ou assinado automaticamente.",
+ "description": "Esta definição sincronizará e autenticará os utilizadores e grupos de um servidor LDAP ou Active Directory externa. A sincronização é executada periodicamente, mas também pode ser acionada manualmente.",
+ "bindPassword": "Vincular Palavra-passe (opcional)",
+ "disableWarning": "A fonte de autenticação de todos os utilizadores existentes será reiniciada para se autenticar na base de dados da palavra-passe atual.",
+ "baseDn": "Base DN",
+ "bindUsername": "Vincular Base DN/Nome de utilizador (opcional)"
},
"deleteUserDialog": {
"title": "Eliminar utilizador {{ username }}",
- "deleteAction": "Eliminar"
+ "deleteAction": "Eliminar",
+ "description": "Depois da eliminação, o utilizador não poderá aceder ao painel ou iniciar a sessão em quaisquer aplicações. Note que não são removidos quaisquer dados do utilizador dentro das aplicações."
},
"externalLdapDialog": {
"title": "Configurar LDAP"
@@ -396,7 +448,8 @@
"setGhostDialog": {
"password": "Palavra-passe",
"setPassword": "Definir Palavra-passe",
- "generatePassword": "Gerar Palavra-passe"
+ "generatePassword": "Gerar Palavra-passe",
+ "title": "Crie palavra-passe para se passar por {{ username }}"
},
"setGhost": {
"password": "Palavra-passe"
@@ -404,7 +457,12 @@
"userImportDialog": {
"title": "Importar Utilizadores",
"fileInput": "Selecionar ficheiro JSON ou CSV",
- "importAction": "Importar"
+ "importAction": "Importar",
+ "usersFound": "Encontrado(s) {{ count }} utilizador(es) para importar.",
+ "success": "Importado(s) {{ count }} utilizador(es).",
+ "failed": "Os utilizadores seguintes não foram importados:",
+ "sendInviteCheckbox": "Enviar mensagem de convite aos utilizadores importados",
+ "description": "Envie um ficheiro JSON ou CSV com o esquema descrito na nossa documentação"
},
"userExport": {
"csv": "Exportar como CSV",
@@ -424,7 +482,11 @@
"settings": {
"title": "Definições do Utilizador",
"subscriptionRequiredAction": "Configurar Subscrição Agora",
- "saveAction": "Guardar"
+ "saveAction": "Guardar",
+ "allowProfileEditCheckbox": "Permitir que os utilizadores editem o seu nome e e-mail",
+ "require2FACheckbox": "Requer que os utilizadores configurem 2FA",
+ "subscriptionRequired": "Estas funcionalidades só estão disponíveis nos planos pagos.",
+ "require2FAWarning": "Configure primeiro o 2FA para a sua conta para evitar que fique bloqueado."
},
"addGroupDialog": {
"title": "Adicionar Grupo"
@@ -447,7 +509,12 @@
},
"addUserDialog": {
"title": "Adicionar Utilizador",
- "addUserAction": "Adicionar Utilizador"
+ "addUserAction": "Adicionar Utilizador",
+ "sendInviteCheckbox": "Enviar agora uma mensagem de convite"
+ },
+ "invitationNotification": {
+ "title": "Hiperligação de convite enviada",
+ "body": "Mensagem enviada para {{ email }}"
}
},
"login": {
@@ -470,7 +537,90 @@
},
"emails": {
"testMailDialog": {
- "mailToPlaceholder": "Endereço de correio eletrónico"
+ "mailToPlaceholder": "Endereço de correio eletrónico",
+ "mailTo": "Enviar para",
+ "sendAction": "Enviar"
+ },
+ "eventlog": {
+ "type": {
+ "sentInfo": "Enviada",
+ "queued": "Em Fila",
+ "savedInfo": "Guardada",
+ "denied": "Negado",
+ "bounce": "Desativado",
+ "outgoing": "De Saída",
+ "incoming": "A Receber",
+ "deferred": "Adiado",
+ "deniedInfo": "Ligação negada",
+ "overQuotaInfo": "Caixa de Correio {{ mailbox }} está {{ quotaPercent }}% cheia",
+ "underQuotaInfo": "Caixa de Correio {{ mailbox }} está abaixo da quota {{ quotaPercent }}%",
+ "quota": "Quota da Caixa de Correio"
+ },
+ "searchPlaceholder": "Procurar",
+ "from": "De",
+ "mailFrom": "De",
+ "rcptTo": "Para",
+ "time": "Hora",
+ "details": "Detalhes",
+ "empty": "O registo de evento está vazio."
+ },
+ "changeDomainDialog": {
+ "title": "Alterar Localização do Servidor de E-mail",
+ "location": "Localização",
+ "description": "Isto irá mover o servidor de IMAP e SMTP para a localização especificada."
+ },
+ "title": "E-mail",
+ "typeFilterHeader": "Todos os Eventos",
+ "aclDialog": {
+ "dnsblZones": "Zonas DNSBL"
+ },
+ "queue": {
+ "mailFrom": "De",
+ "discardTooltip": "Rejeitar",
+ "queueTime": "Hora da Fila",
+ "resendTooltip": "Reenviar agora",
+ "title": "Fila de Mensagens",
+ "rcptTo": "Para",
+ "details": "Detalhes",
+ "empty": "A fila de mensagens está vazia"
+ },
+ "action": {
+ "queue": "Fila"
+ },
+ "changeVirtualAllMailDialog": {
+ "title": "Pasta \"Todas as Mensagens\""
+ },
+ "settings": {
+ "title": "Definições",
+ "info": "Estas definições são globais e aplicam-se a todos os domínios.",
+ "location": "Localização do Servidor de Correio",
+ "aclOverview": "{{ dnsblZonesCount }} DNSBL zona(s)",
+ "virtualAllMail": "Pasta \"Todas as Mensagens\"",
+ "solrDisabled": "Desativado",
+ "solrRunning": "Em Execução",
+ "solrNotRunning": "Parado",
+ "acl": "Correio ACL",
+ "solrEnabled": "Ativado",
+ "spamFilter": "Filtragem de lixo do correio eletrónico"
+ },
+ "domains": {
+ "domain": "Domínio",
+ "config": "Configurar",
+ "outbound": "Apenas de saída",
+ "disabled": "Desativado",
+ "stats": "{{ mailboxCount }} Caixa(s) de correio / Utilização: {{ usage }}",
+ "testEmailTooltip": "Enviar Mensagem de Teste",
+ "title": "Domínios"
+ },
+ "mailboxSharing": {
+ "enableAction": "Ativar"
+ },
+ "solrConfig": {
+ "notEnoughMemory": "Por favor, aloque pelo menos 3 GB para o serviço de correio para ativar solr."
+ },
+ "spamFilterDialog": {
+ "title": "Filtragem de Lixo de Correio Eletrónico",
+ "blacklisteAddresses": "Endereços na lista de bloqueios"
}
},
"email": {
@@ -487,16 +637,459 @@
"addMailinglistDialog": {
"members": "Listar Membros",
"name": "Nome"
+ },
+ "smtpStatus": {
+ "rblCheck": "Verificar Lista Negra do DNS",
+ "outboundSmtp": "SMTP de Saída"
+ },
+ "subscriptionDialog": {
+ "title": "Necessária subscrição"
}
},
"backups": {
"location": {
"title": "Localização",
"provider": "Fornecedor",
- "location": "Localização"
+ "location": "Localização",
+ "format": "Formato de Armazenamento",
+ "configure": "Configurar",
+ "remount": "Remontar Armazenamento",
+ "disabledList": "As seguintes aplicações têm as cópias de segurança desativadas:"
+ },
+ "configureBackupStorage": {
+ "encryptedFilenames": "Nomes de ficheiro encriptados",
+ "s3SecretAccessKey": "Código de acesso secreto",
+ "format": "Formato do Armazenamento",
+ "preserveAttributesLabel": "Preservar atributos de ficheiro",
+ "port": "Porta",
+ "provider": "Fornecedor de armazenamento",
+ "prefix": "Prefixo",
+ "region": "Região",
+ "title": "Configurar Armazenamento da Cópia de Segurança",
+ "localDirectory": "Diretoria da cópia de segurança çocal",
+ "ext4Label": "A diretoria da cópia de segurança é um Disco EXT4 externo",
+ "acceptSelfSignedCerts": "Aceitar certificado Assinado Automaticamente",
+ "s3AccessKeyId": "Id. do código de acesso",
+ "gcsServiceKey": "Código da Conta de Serviço",
+ "encryptionPassword": "Encriptação da Palavra-passe (opcional)",
+ "encryptFilenames": "Nomes de Ficheiro Encriptados",
+ "advancedSettings": "Definições avançadas…",
+ "memoryLimit": "Limite da Memória",
+ "encryptionPasswordRepeat": "Repetir Palavra-passe",
+ "server": "IP do Servidor ou Nome do Anfitrião",
+ "remoteDirectory": "Diretoria Remota",
+ "username": "Nome de utilizador",
+ "password": "Palavra-passe",
+ "user": "Utilizador",
+ "privateKey": "Código Privado",
+ "diskPath": "Caminho do Disco",
+ "downloadConcurrencyDescription": "Número de ficheiros para transferir em paralelo quando restaurar"
+ },
+ "schedule": {
+ "schedule": "Agendar",
+ "retentionPolicy": "Política de Retenção",
+ "title": "Agendar e Retenção",
+ "configure": "Configurar"
+ },
+ "backupEdit": {
+ "remotePath": "Remover Caminho",
+ "label": "Etiqueta",
+ "title": "Editar Cópia"
+ },
+ "restoreArchiveDialog": {
+ "restoreAction": "Restaurar",
+ "restoreActionOverwrite": "Restaurar e substituir DNS",
+ "title": "Restaurar do Arquivo"
+ },
+ "archives": {
+ "info": "Informação"
+ },
+ "deleteArchive": {
+ "deleteAction": "Eliminar"
+ },
+ "deleteArchiveDialog": {
+ "description": "Depois da eliminação, o arquivo será limpo com base na política das cópias de segurança.",
+ "title": "Eliminar Arquivo de {{appTitle}} ({{fqdn}})"
+ },
+ "cleanupBackups": {
+ "cleanupNow": "Limpar agora",
+ "title": "Limpeza das Cópias de Segurança"
+ },
+ "configureBackupSchedule": {
+ "schedule": "Agendar",
+ "days": "Dias",
+ "hours": "Horas",
+ "retentionPolicy": "Política de Retenção"
+ },
+ "backupFailed": {
+ "title": "Não é possível criar a cópia de segurança"
+ },
+ "title": "Cópias de Segurança",
+ "listing": {
+ "contents": "Conteúdos",
+ "version": "Versão",
+ "noApps": "Sem aplicações",
+ "appCount": "{{ appCount }} aplicações",
+ "backupNow": "Copiar agora",
+ "stopTask": "Parar Cópia",
+ "tooltipEditBackup": "Editar Cópia",
+ "tooltipPreservedBackup": "Esta cópia de segurança será preservada",
+ "title": "Listagem",
+ "noBackups": "Ainda não foram efetuadas cópias de segurança.",
+ "tooltipDownloadBackupConfig": "Transferir Configuração da Cópia de Segurança",
+ "cleanupBackups": "Limpeza das Cópias de Segurança"
+ },
+ "logs": {
+ "title": "Registos",
+ "showLogs": "Mostrar Registos",
+ "description": "Por favor, tenha cuidado quando envia estes registos para um servidor público porque eles podem conter informação sensível."
+ },
+ "backupDetails": {
+ "title": "Detalhes da Cópia",
+ "id": "Id.",
+ "date": "Data",
+ "version": "Versão",
+ "format": "Formato"
}
},
"passwordReset": {
"backToLoginAction": "Voltar para iniciar sessão"
+ },
+ "branding": {
+ "footer": {
+ "title": "Rodapé",
+ "subscriptionRequired": "A personalização do rodapé só está disponível nos planos pagos.",
+ "setupSubscriptionNow": "Configurar Subscrição Agora",
+ "description": "Utilizar marcação para estilizar o rodapé."
+ },
+ "clearBackgroundImage": "Limpar",
+ "title": "Aparência",
+ "cloudronName": "Nome de Cloudron",
+ "logo": "Logótipo",
+ "changeLogo": {
+ "title": "Escolher Avatar de Cloudron"
+ }
+ },
+ "network": {
+ "firewall": {
+ "title": "Firewall",
+ "configure": {
+ "title": "Configuração da Firewall"
+ }
+ },
+ "configureIp": {
+ "title": "Configurar Provedor de IPv4"
+ },
+ "ip": {
+ "title": "IPv4",
+ "description": "Este endereço IPv4 é utilizado para configurar os registos de DNS A.",
+ "provider": "Provedor",
+ "interface": "Nome da Interface da Rede",
+ "configure": "Configurar",
+ "detected": "detetado",
+ "address": "Endereço de IP",
+ "interfaceDescription": "Listar os dispositivos disponíveis no servidor com:"
+ },
+ "title": "Rede",
+ "dyndns": {
+ "title": "DNS Dinâmico",
+ "showLogsAction": "Mostrar Registos"
+ },
+ "ipv4": {
+ "address": "Endereço de IPv4"
+ },
+ "ipv6": {
+ "address": "Endereço de IPv6",
+ "title": "IPv6"
+ },
+ "configureIpv6": {
+ "title": "Configurar Provedor de IPv6"
+ },
+ "trustedIps": {
+ "title": "Configurar IPs Confiáveis"
+ }
+ },
+ "settings": {
+ "timezone": {
+ "title": "Zona Horária do Sistema"
+ },
+ "language": {
+ "description": "O idioma predefinido deste Cloudron pode ser definido aqui. Isto também será utilizado para as mensagens transacionais, tais como convite do utilizador e redefinição da palavra-passe. Cada utilizador ainda pode alterar individualmente o idioma preferido do painel no perfil.",
+ "title": "Idioma"
+ },
+ "privateDockerRegistry": {
+ "deleteQuestion": "Deseja eliminar este registo?",
+ "setupSubscriptionAction": "Configurar Subscrição Agora",
+ "server": "Endereço do servidor",
+ "username": "Nome de utilizador",
+ "usernameNotSet": "Não definido",
+ "configureAction": "Configurar Registo",
+ "serverNotSet": "Não definido"
+ },
+ "title": "Sistema",
+ "appstoreAccount": {
+ "title": "Conta Cloudron.io",
+ "setupAction": "Configurar Conta",
+ "email": "E-mail da Conta",
+ "subscription": "Subscrição",
+ "cloudronId": "Id. de Cloudron",
+ "subscriptionChangeAction": "Gerir Subscrição",
+ "subscriptionReactivateAction": "Reativar Subscrição",
+ "emailNotVerified": "E-mail ainda não foi verificado",
+ "subscriptionSetupAction": "Atualizar para Premium"
+ },
+ "updates": {
+ "checkForUpdatesAction": "Procurar por Atualizações",
+ "schedule": "Agendar",
+ "version": "Versão da plataforma",
+ "showLogsAction": "Mostrar Registos",
+ "changeScheduleAction": "Alterar Agendamento",
+ "updateAvailableAction": "Disponível Atualização",
+ "stopUpdateAction": "Parar Atualização",
+ "disabled": "Desativada"
+ },
+ "updateDialog": {
+ "title": "Atualizar Cloudron para",
+ "changes": "Alterações",
+ "skipBackupCheckbox": "Ignorar cópia",
+ "updateAction": "Atualizar",
+ "blockingApps": "As aplicações em baixo estão a bloquear a atualização porque elas têm ações pendentes:",
+ "blockingAppsInfo": "Por favor, aguarde que as operações em cima terminem."
+ },
+ "privateDockerRegistryDialog": {
+ "email": "E-mail (Opcional)",
+ "passwordToken": "Palavra-passe/Código",
+ "title": "Configuração Privada do Registo"
+ },
+ "updateScheduleDialog": {
+ "days": "Dias",
+ "hours": "Horas",
+ "disableCheckbox": "Desativar Atualizações Automáticas",
+ "enableCheckbox": "Ativar Atualizações Automáticas",
+ "selectOne": "Selecione pelo menos um dia e hora"
+ },
+ "registryConfig": {
+ "providerOther": "Outro",
+ "providerDisabled": "Desativado"
+ }
+ },
+ "support": {
+ "ticket": {
+ "typeEmail": "Erro de E-mail",
+ "type": "Tipo",
+ "subscriptionRequiredDescription": "Pode encontrar respostas na nossa documentação ou perguntar no Fórum.",
+ "reportPlaceholder": "Descreva o seu problema",
+ "emailVerifyAction": "Verificar agora",
+ "typeBilling": "Problema de Faturação",
+ "email": "E-mail",
+ "emailInfo": "(O e-mail de subscrição é {{ email }})",
+ "submitAction": "Submeter",
+ "title": "Pedido",
+ "typeApp": "Erro da Aplicação",
+ "typeBug": "Relatório de Erro",
+ "subscriptionRequired": "Os pedidos de apoio só estão disponíveis nos planos pagos.",
+ "selectApp": "Selecionar Aplicação",
+ "topic": "Tópico",
+ "report": "Relatório",
+ "sshCheckbox": "Permitir que os técnicos do apoio liguem a este servidor via SSH",
+ "emailPlaceholder": "Se necessário, forneça um endereço de correio eletrónico diferente do acima para contactá-lo",
+ "emailNotVerified": "A sua conta de correio eletrónico de cloudron.io {{ email }} não está verificada. Por favor, verifique-a para abrir os pedidos de apoio."
+ },
+ "help": {
+ "title": "Ajuda",
+ "description": "Por favor, utilize os seguintes recursos para ajuda e apoio:\n* [Fórum do Cloudron]({{ forumLink }}) - Por favor, utilize as categorias específicas da Aplicação e Apoio para questões.\n* [Documentação do Cloudron e Base de Conhecimentos]({{ docsLink }})\n* [API e Empacotamento da Aplicação Personalizado]({{ packagingLink }})\n"
+ },
+ "remoteSupport": {
+ "title": "Apoio Remoto",
+ "subscriptionRequired": "O apoio remoto está disponível nos planos pagos.",
+ "description": "Ative esta opção para permitir que os técnicos do apoio liguem a este servidor via SSH.",
+ "disableAction": "Desativar o acesso ao suporte de SSH",
+ "enableAction": "Ativar o acesso ao suporte de SSH",
+ "warning": "Não ative esta opção a não ser que solicitado pela equipa de apoio do Cloudron."
+ },
+ "title": "Apoio"
+ },
+ "domains": {
+ "renewCerts": {
+ "renewAllAction": "Renovar Todos os Certificados",
+ "title": "Renovar certificados",
+ "showLogsAction": "Mostrar Registos"
+ },
+ "domainDialog": {
+ "editTitle": "Configurar {{ domain }}",
+ "addTitle": "Adicionar Domínio",
+ "fallbackCertCustomCert": "Certificado Personalizado",
+ "jitsiHostname": "Localização de Jitsi",
+ "inwxUsername": "Nome de utilizador",
+ "inwxPassword": "Palavra-passe",
+ "domain": "Domínio",
+ "matrixHostname": "Localização do Servidor Matrix",
+ "mastodonHostname": "Localização do Servidor Mastodon",
+ "netcupApiKey": "Código da API",
+ "provider": "Provedor de DNS",
+ "route53AccessKeyId": "Id. do Código de Acesso",
+ "route53SecretAccessKey": "Código de Acesso Secreto",
+ "gcdnsServiceAccountKey": "Código da Conta de Serviço",
+ "digitalOceanToken": "Código de DigitalOcean",
+ "gandiApiKey": "Código da API Gandi",
+ "goDaddyApiKey": "Código da API",
+ "goDaddyApiSecret": "Segredo da API",
+ "cloudflareTokenType": "Tipo de Código",
+ "cloudflareEmail": "E-mail de Cloudflare",
+ "linodeToken": "Código de Linode",
+ "nameComUsername": "Nome de Utilizador de Name.com",
+ "nameComApiToken": "Código da API",
+ "namecheapApiKey": "Código da API",
+ "advancedAction": "Definições avançadas…",
+ "zoneName": "Nome da Zona (Opcional)",
+ "certProvider": "Fornecedor do Certificado",
+ "fallbackCertKeyPlaceholder": "Código",
+ "fallbackCertCertificatePlaceholder": "Certificado",
+ "netcupCustomerNumber": "Número de Cliente",
+ "netcupApiPassword": "Palavra-passe da API",
+ "hetznerToken": "Código de Hetzner",
+ "cloudflareDefaultProxyStatus": "Ativar ''proxying'' para os novos registos de DNS",
+ "porkbunApikey": "Código da API",
+ "porkbunSecretapikey": "Código da API Secreto",
+ "vultrToken": "Código de Vultr",
+ "cloudflareTokenTypeGlobalApiKey": "Código da API Global",
+ "cloudflareTokenTypeApiToken": "Código da API"
+ },
+ "title": "Domínios e Certificados",
+ "subscriptionRequired": {
+ "title": "Necessária subscrição",
+ "description": "Para adicionar mais domínios, por favor, configure um plano pago.",
+ "setupAction": "Configurar Subscrição"
+ },
+ "addDomain": "Adicionar Domínio",
+ "domain": "Domínio",
+ "provider": "Provedor",
+ "tooltipEdit": "Editar Domínio",
+ "tooltipRemove": "Remover Domínio",
+ "changeDashboardDomain": {
+ "title": "Alterar Domínio do Painel",
+ "changeAction": "Alterar Domínio",
+ "cancelAction": "Cancelar",
+ "showLogsAction": "Mostrar Registos"
+ },
+ "syncDns": {
+ "showLogsAction": "Mostrar Registos",
+ "title": "Sincronizar DNS",
+ "syncAction": "Sincronizar DNS"
+ },
+ "removeDialog": {
+ "removeAction": "Remover"
+ }
+ },
+ "services": {
+ "configureActionTooltip": "Configurar",
+ "restartActionTooltip": "Reiniciar",
+ "configure": {
+ "title": "Configurar {{ name }}",
+ "accessControl": "Controlo de Acesso",
+ "memoryLimitDescription": "Cloudron aloca 50% deste valor como RAM e 50% como troca (swap).",
+ "resetToDefaults": "Reiniciar para predefinição",
+ "requireAdminRoleLabel": "Requer função de administrador para aceder a SFTP",
+ "enableRecoveryMode": "Ativar Modo de Recuperação"
+ },
+ "refresh": "Atualizar",
+ "memoryUsage": "Utilização de Memória",
+ "memoryLimit": "Limite de Memória",
+ "title": "Serviços",
+ "service": "Serviço"
+ },
+ "system": {
+ "diskUsage": {
+ "uninstalledApp": "Aplicação desinstalada",
+ "title": "Utilização do Disco",
+ "diskSpeed": "Velocidade: {{ speed }} MB/seg.",
+ "usedInfo": "{{ used }} utilizado de {{ size }}",
+ "volumeContent": "Este disco é o volume {{ name }}",
+ "notAvailableYet": "Ainda não disponível",
+ "diskContent": "Este disco {{ type }} contém",
+ "mountedAt": "{{ filesystem }} montado em {{ mountpoint }}",
+ "usageInfo": "disponível {{ available | prettyDiskSize }} de {{ size | prettyDiskSize }}"
+ },
+ "title": "Informação do Sistema",
+ "selectPeriodLabel": "Selecionar Período",
+ "systemMemory": {
+ "title": "Memória do Sistema",
+ "graphSubtext": "Só são mostradas aplicações que utilizem mais de {{ threshold }} da memória"
+ },
+ "cpuUsage": {
+ "title": "CPU",
+ "graphTitle": "Percentagem",
+ "graphSubtext": "Só são mostradas aplicações que utilizem mais de {{ threshold }} da CPU"
+ },
+ "info": {
+ "platformVersion": "Versão da Plataforma",
+ "vendor": "Empresa",
+ "product": "Produto",
+ "memory": "Memória",
+ "title": "Informação",
+ "uptime": "Em Execução",
+ "activationTime": "Hora de Criação do Cloudron"
+ },
+ "locale": {
+ "title": "Definições de Local"
+ },
+ "graphs": {
+ "title": "Gráficos"
+ }
+ },
+ "eventlog": {
+ "source": "Fonte",
+ "details": "Detalhes",
+ "searchPlaceholder": "Procurar",
+ "filterAllEvents": "Todos os Eventos",
+ "time": "Hora",
+ "title": "Registo de Evento"
+ },
+ "notifications": {
+ "settings": {
+ "diskSpace": "Pouco espaço em disco",
+ "appUp": "A aplicação está novamente on-line",
+ "rebootRequired": "É necessário reiniciar o servidor",
+ "cloudronUpdateFailed": "Atualização do Cloudron Falhou",
+ "title": "Definições da Notificação",
+ "backupFailed": "Cópia de segurança falhou",
+ "certificateRenewalFailed": "Renovação do certificado falhou",
+ "appOutOfMemory": "A aplicação não tem memória",
+ "appDown": "A aplicação está em baixo"
+ },
+ "allCaughtUp": "Tudo OK",
+ "title": "Notificações",
+ "nonePending": "Tudo OK!",
+ "dismissTooltip": "Rejeitar",
+ "clearAll": "Limpar Tudo",
+ "markAllAsRead": "Marcar Tudo como Lido"
+ },
+ "filemanager": {
+ "list": {
+ "menu": {
+ "download": "Transferir"
+ }
+ }
+ },
+ "app": {
+ "backups": {
+ "backups": {
+ "downloadConfigTooltip": "Transferir Configuração da Cópia de Segurança",
+ "downloadBackupTooltip": "Transferir Cópia de Segurança"
+ }
+ }
+ },
+ "logs": {
+ "title": "Registos",
+ "clear": "Limpar Visualização",
+ "download": "Transferir Registos Completos"
+ },
+ "terminal": {
+ "download": {
+ "title": "Transferir de {{ name }}",
+ "filePath": "Caminho para ficheiro ou diretoria",
+ "download": "Transferir"
+ },
+ "downloadAction": "Transferir"
}
}
diff --git a/dashboard/src/views/CloudronAccountView.vue b/dashboard/src/views/CloudronAccountView.vue
index ac7d5b4af..9dd7b76ec 100644
--- a/dashboard/src/views/CloudronAccountView.vue
+++ b/dashboard/src/views/CloudronAccountView.vue
@@ -51,8 +51,8 @@ async function refresh() {
const inputDialog = useTemplateRef('inputDialog');
async function onAskResetCloudron() {
const yes = await inputDialog.value.confirm({
- title: 'Really reset Cloudron ID',
- message: 'This will disconnect the Cloudron from the current cloudron.io account',
+ title: t('settings.appstoreAccount.resetDialog.title'),
+ message: t('settings.appstoreAccount.resetDialog.description'),
confirmStyle: 'danger',
confirmLabel: t('main.dialog.yes'),
rejectLabel: t('main.dialog.cancel'),
@@ -133,7 +133,7 @@ onUnmounted(() => {
{{ $t('settings.appstoreAccount.subscriptionChangeAction') }}
-
+
@@ -151,7 +151,7 @@ onUnmounted(() => {
Unknown Cloudron ID or invalid cloudron.io token.