diff --git a/frontend/check-locales.cjs b/frontend/check-locales.cjs index 240b300cc..40b0475dc 100755 --- a/frontend/check-locales.cjs +++ b/frontend/check-locales.cjs @@ -9,6 +9,7 @@ const allLocales = [ ["en", "en-US"], ["de", "de-DE"], + ["pt", "pt-PT"], ["es", "es-ES"], ["it", "it-IT"], ["ja", "ja-JP"], diff --git a/frontend/src/locale/IntlProvider.tsx b/frontend/src/locale/IntlProvider.tsx index d38df0d45..3fa371c99 100755 --- a/frontend/src/locale/IntlProvider.tsx +++ b/frontend/src/locale/IntlProvider.tsx @@ -1,5 +1,6 @@ import { createIntl, createIntlCache } from "react-intl"; import langDe from "./lang/de.json"; +import langPt from "./lang/pt.json"; import langEn from "./lang/en.json"; import langEs from "./lang/es.json"; import langIt from "./lang/it.json"; @@ -20,6 +21,7 @@ import langBg from "./lang/bg.json"; const localeOptions = [ ["en", "en-US", langEn], ["de", "de-DE", langDe], + ["pt", "pt-PT", langPt], ["es", "es-ES", langEs], ["ja", "ja-JP", langJa], ["it", "it-IT", langIt], diff --git a/frontend/src/locale/src/HelpDoc/index.ts b/frontend/src/locale/src/HelpDoc/index.ts index f70dff698..b445a1c6a 100644 --- a/frontend/src/locale/src/HelpDoc/index.ts +++ b/frontend/src/locale/src/HelpDoc/index.ts @@ -1,4 +1,5 @@ import * as de from "./de/index"; +import * as pt from "./pt/index"; import * as en from "./en/index"; import * as it from "./it/index"; import * as ja from "./ja/index"; @@ -11,7 +12,7 @@ import * as zh from "./zh/index"; import * as ko from "./ko/index"; import * as bg from "./bg/index"; -const items: any = { en, de, ja, sk, zh, pl, ru, it, vi, nl, bg, ko }; +const items: any = { en, de, pt, ja, sk, zh, pl, ru, it, vi, nl, bg, ko }; const fallbackLang = "en"; diff --git a/frontend/src/locale/src/HelpDoc/pt/AccessLists.md b/frontend/src/locale/src/HelpDoc/pt/AccessLists.md new file mode 100644 index 000000000..fcedb8a58 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/pt/AccessLists.md @@ -0,0 +1,11 @@ +## O que é uma Access List? + +As *Access Lists* fornecem uma lista de permissões (whitelist) ou bloqueios (blacklist) +de endereços IP específicos de clientes, juntamente com autenticação para os *Proxy Hosts* +via Autenticação HTTP Básica (*Basic Auth*). + +Podes configurar múltiplas regras de cliente, nomes de utilizador e palavras-passe +para uma única *Access List*, e depois aplicá-la a um ou mais *Proxy Hosts*. + +Isto é especialmente útil para serviços web encaminhados que não têm mecanismos +de autenticação integrados ou quando pretendes proteger o acesso contra clientes desconhecidos. diff --git a/frontend/src/locale/src/HelpDoc/pt/Certificates.md b/frontend/src/locale/src/HelpDoc/pt/Certificates.md new file mode 100644 index 000000000..da92f8032 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/pt/Certificates.md @@ -0,0 +1,31 @@ +## Ajuda de Certificados + +### Certificado HTTP + +Um certificado validado por HTTP significa que os servidores do Let's Encrypt irão +tentar aceder aos teus domínios via HTTP (não HTTPS!) e, se a ligação for bem-sucedida, +emitirão o certificado. + +Para este método, é necessário ter um *Proxy Host* criado para o(s) teu(s) domínio(s), +acessível via HTTP e a apontar para esta instalação do Nginx. Depois de o certificado ser +emitido, podes modificar o *Proxy Host* para também utilizar esse certificado em ligações HTTPS. +No entanto, o *Proxy Host* deve continuar configurado para acesso HTTP para que a renovação +funcione corretamente. + +Este processo **não** suporta domínios wildcard. + +### Certificado DNS + +Um certificado validado por DNS requer que uses um plugin de fornecedor DNS (*DNS Provider*). +Este fornecedor será usado para criar registos temporários no teu domínio, que serão consultados +pelo Let's Encrypt para confirmar que és o proprietário. Se tudo correr bem, o certificado será emitido. + +Não é necessário ter um *Proxy Host* criado antes de pedir este tipo de certificado. +Também não é necessário que o *Proxy Host* tenha acesso HTTP configurado. + +Este processo **suporta** domínios wildcard. + +### Certificado Personalizado + +Usa esta opção para carregar o teu próprio Certificado SSL, fornecido pela +tua Autoridade Certificadora. diff --git a/frontend/src/locale/src/HelpDoc/pt/DeadHosts.md b/frontend/src/locale/src/HelpDoc/pt/DeadHosts.md new file mode 100644 index 000000000..c9874a149 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/pt/DeadHosts.md @@ -0,0 +1,9 @@ +## O que é um 404 Host? + +Um *404 Host* é simplesmente um host configurado para apresentar uma página 404. + +Isto pode ser útil quando o teu domínio aparece em motores de busca e queres fornecer +uma página de erro mais agradável ou indicar especificamente aos indexadores de pesquisa +que as páginas desse domínio já não existem. + +Outra vantagem é permitir consultar os registos de acessos a este host e ver os referenciadores. diff --git a/frontend/src/locale/src/HelpDoc/pt/ProxyHosts.md b/frontend/src/locale/src/HelpDoc/pt/ProxyHosts.md new file mode 100644 index 000000000..4c221fac1 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/pt/ProxyHosts.md @@ -0,0 +1,7 @@ +## O que é um Proxy Host? + +Um *Proxy Host* é o ponto de entrada para um serviço web que pretendes encaminhar. + +Permite, opcionalmente, fazer terminação SSL para um serviço que possa não ter suporte SSL nativo. + +Os *Proxy Hosts* são a utilização mais comum do Nginx Proxy Manager. diff --git a/frontend/src/locale/src/HelpDoc/pt/RedirectionHosts.md b/frontend/src/locale/src/HelpDoc/pt/RedirectionHosts.md new file mode 100644 index 000000000..10418ba08 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/pt/RedirectionHosts.md @@ -0,0 +1,7 @@ +## O que é um Redirection Host? + +Um *Redirection Host* redireciona pedidos recebidos no domínio de entrada e envia +o utilizador para outro domínio. + +A razão mais comum para usar este tipo de host é quando o teu site muda de domínio +mas ainda tens motores de busca ou links de referência a apontar para o domínio antigo. diff --git a/frontend/src/locale/src/HelpDoc/pt/Streams.md b/frontend/src/locale/src/HelpDoc/pt/Streams.md new file mode 100644 index 000000000..83857c636 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/pt/Streams.md @@ -0,0 +1,6 @@ +## O que é um Stream? + +Uma funcionalidade relativamente recente no Nginx, um *Stream* serve para encaminhar +tráfego TCP/UDP diretamente para outro computador na rede. + +Se estiveres a executar servidores de jogos, FTP ou SSH, isto pode ser bastante útil. diff --git a/frontend/src/locale/src/HelpDoc/pt/index.ts b/frontend/src/locale/src/HelpDoc/pt/index.ts new file mode 100644 index 000000000..a9bb46ba7 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/pt/index.ts @@ -0,0 +1,6 @@ +export * as AccessLists from "./AccessLists.md"; +export * as Certificates from "./Certificates.md"; +export * as DeadHosts from "./DeadHosts.md"; +export * as ProxyHosts from "./ProxyHosts.md"; +export * as RedirectionHosts from "./RedirectionHosts.md"; +export * as Streams from "./Streams.md"; diff --git a/frontend/src/locale/src/lang-list.json b/frontend/src/locale/src/lang-list.json index 520eef247..99de04854 100755 --- a/frontend/src/locale/src/lang-list.json +++ b/frontend/src/locale/src/lang-list.json @@ -8,6 +8,9 @@ "locale-de-DE": { "defaultMessage": "German" }, + "locale-pt-PT": { + "defaultMessage": "Português (Europeu)" + }, "locale-ja-JP": { "defaultMessage": "日本語" }, diff --git a/frontend/src/locale/src/pt.json b/frontend/src/locale/src/pt.json new file mode 100644 index 000000000..0a789f484 --- /dev/null +++ b/frontend/src/locale/src/pt.json @@ -0,0 +1,683 @@ +{ + "access-list": { + "defaultMessage": "Lista de Controlo de Acesso (ACL)" + }, + "access-list.access-count": { + "defaultMessage": "{count} {count, plural, one {Regra} other {Regras}}" + }, + "access-list.auth-count": { + "defaultMessage": "{count} {count, plural, one {Utilizador} other {Utilizadores}}" + }, + "access-list.help-rules-last": { + "defaultMessage": "Quando existir pelo menos 1 regra, esta regra de negação geral será aplicada em último lugar" + }, + "access-list.help.rules-order": { + "defaultMessage": "Nota: as diretivas allow e deny são aplicadas pela ordem em que forem definidas." + }, + "access-list.pass-auth": { + "defaultMessage": "Passar Autenticação para o Upstream" + }, + "access-list.public": { + "defaultMessage": "Acesso Público" + }, + "access-list.public.subtitle": { + "defaultMessage": "Sem autenticação básica" + }, + "access-list.rule-source.placeholder": { + "defaultMessage": "192.168.1.100 ou 192.168.1.0/24 ou 2001:0db8::/32" + }, + "access-list.satisfy-any": { + "defaultMessage": "Satisfazer Qualquer" + }, + "access-list.subtitle": { + "defaultMessage": "{users} {users, plural, one {Utilizador} other {Utilizadores}}, {rules} {rules, plural, one {Regra} other {Regras}} – Criado em: {date}" + }, + "access-lists": { + "defaultMessage": "Listas de Controlo de Acesso (ACL)" + }, + "action.add": { + "defaultMessage": "Adicionar" + }, + "action.add-location": { + "defaultMessage": "Adicionar Location" + }, + "action.allow": { + "defaultMessage": "Permitir" + }, + "action.close": { + "defaultMessage": "Fechar" + }, + "action.delete": { + "defaultMessage": "Eliminar" + }, + "action.deny": { + "defaultMessage": "Negar" + }, + "action.disable": { + "defaultMessage": "Desativar" + }, + "action.download": { + "defaultMessage": "Descarregar" + }, + "action.edit": { + "defaultMessage": "Editar" + }, + "action.enable": { + "defaultMessage": "Ativar" + }, + "action.permissions": { + "defaultMessage": "Permissões" + }, + "action.renew": { + "defaultMessage": "Renovar" + }, + "action.view-details": { + "defaultMessage": "Ver Detalhes" + }, + "auditlogs": { + "defaultMessage": "Registos de Auditoria" + }, + "auto": { + "defaultMessage": "Automático" + }, + "cancel": { + "defaultMessage": "Cancelar" + }, + "certificate": { + "defaultMessage": "Certificado" + }, + "certificate.custom-certificate": { + "defaultMessage": "Certificado Personalizado" + }, + "certificate.custom-certificate-key": { + "defaultMessage": "Chave do Certificado" + }, + "certificate.custom-intermediate": { + "defaultMessage": "Certificado Intermédio" + }, + "certificate.in-use": { + "defaultMessage": "Em Utilização" + }, + "certificate.none.subtitle": { + "defaultMessage": "Nenhum certificado atribuído" + }, + "certificate.none.subtitle.for-http": { + "defaultMessage": "Este host não irá utilizar HTTPS" + }, + "certificate.none.title": { + "defaultMessage": "Nenhum" + }, + "certificate.not-in-use": { + "defaultMessage": "Não Utilizado" + }, + "certificate.renew": { + "defaultMessage": "Renovar Certificado" + }, + "certificates": { + "defaultMessage": "Certificados" + }, + "certificates.custom": { + "defaultMessage": "Certificado Personalizado" + }, + "certificates.custom.warning": { + "defaultMessage": "Ficheiros de chave protegidos por palavra-passe não são suportados." + }, + "certificates.dns.credentials": { + "defaultMessage": "Conteúdo do Ficheiro de Credenciais" + }, + "certificates.dns.credentials-note": { + "defaultMessage": "Este plugin requer um ficheiro de configuração contendo um token API ou outras credenciais do fornecedor DNS." + }, + "certificates.dns.credentials-warning": { + "defaultMessage": "Estes dados serão guardados em texto simples na base de dados e num ficheiro!" + }, + "certificates.dns.propagation-seconds": { + "defaultMessage": "Segundos de Propagação" + }, + "certificates.dns.propagation-seconds-note": { + "defaultMessage": "Deixe em branco para usar o valor predefinido do plugin. Número de segundos a aguardar pela propagação DNS." + }, + "certificates.dns.provider": { + "defaultMessage": "Fornecedor DNS" + }, + "certificates.dns.provider.placeholder": { + "defaultMessage": "Selecionar fornecedor..." + }, + "certificates.dns.warning": { + "defaultMessage": "Esta secção requer conhecimentos sobre o Certbot e os seus plugins DNS. Consulte a documentação dos plugins." + }, + "certificates.http.reachability-404": { + "defaultMessage": "Foi encontrado um servidor neste domínio, mas não parece ser o Nginx Proxy Manager. Certifique-se de que o domínio aponta para o IP onde a sua instância está a correr." + }, + "certificates.http.reachability-failed-to-check": { + "defaultMessage": "Falha ao verificar acessibilidade devido a um erro de comunicação com site24x7.com." + }, + "certificates.http.reachability-not-resolved": { + "defaultMessage": "Não existe nenhum servidor acessível neste domínio. Certifique-se de que o domínio existe, aponta para o IP correto e que a porta 80 está encaminhada no seu router." + }, + "certificates.http.reachability-ok": { + "defaultMessage": "O servidor está acessível e a criação de certificados deverá ser possível." + }, + "certificates.http.reachability-other": { + "defaultMessage": "Foi encontrado um servidor neste domínio, mas devolveu um código inesperado ({code}). Será o servidor NPM? Confirme que o domínio aponta para o IP correto." + }, + "certificates.http.reachability-wrong-data": { + "defaultMessage": "Foi encontrado um servidor neste domínio, mas devolveu dados inesperados. Será o servidor NPM? Confirme que o domínio aponta para o IP correto." + }, + "certificates.http.test-results": { + "defaultMessage": "Resultados do Teste" + }, + "certificates.http.warning": { + "defaultMessage": "Estes domínios devem já estar configurados para apontar para esta instalação." + }, + "certificates.request.subtitle": { + "defaultMessage": "com o Let's Encrypt" + }, + "certificates.request.title": { + "defaultMessage": "Pedir Novo Certificado" + }, + "column.access": { + "defaultMessage": "Acesso" + }, + "column.authorization": { + "defaultMessage": "Autorização" + }, + "column.authorizations": { + "defaultMessage": "Autorizações" + }, + "column.custom-locations": { + "defaultMessage": "Locations Personalizados" + }, + "column.destination": { + "defaultMessage": "Destino" + }, + "column.details": { + "defaultMessage": "Detalhes" + }, + "column.email": { + "defaultMessage": "Email" + }, + "column.event": { + "defaultMessage": "Evento" + }, + "column.expires": { + "defaultMessage": "Expira" + }, + "column.http-code": { + "defaultMessage": "Código HTTP" + }, + "column.incoming-port": { + "defaultMessage": "Porta de Entrada" + }, + "column.name": { + "defaultMessage": "Nome" + }, + "column.protocol": { + "defaultMessage": "Protocolo" + }, + "column.provider": { + "defaultMessage": "Fornecedor" + }, + "column.roles": { + "defaultMessage": "Funções" + }, + "column.rules": { + "defaultMessage": "Regras" + }, + "column.satisfy": { + "defaultMessage": "Satisfazer" + }, + "column.satisfy-all": { + "defaultMessage": "Todos" + }, + "column.satisfy-any": { + "defaultMessage": "Qualquer" + }, + "column.scheme": { + "defaultMessage": "Esquema" + }, + "column.source": { + "defaultMessage": "Origem" + }, + "column.ssl": { + "defaultMessage": "SSL" + }, + "column.status": { + "defaultMessage": "Estado" + }, + "created-on": { + "defaultMessage": "Criado em: {date}" + }, + "dashboard": { + "defaultMessage": "Painel" + }, + "dead-host": { + "defaultMessage": "Host 404" + }, + "dead-hosts": { + "defaultMessage": "Hosts 404" + }, + "dead-hosts.count": { + "defaultMessage": "{count} {count, plural, one {Host 404} other {Hosts 404}}" + }, + "disabled": { + "defaultMessage": "Desativado" + }, + "domain-names": { + "defaultMessage": "Nomes de Domínio" + }, + "domain-names.max": { + "defaultMessage": "Máximo de {count} domínios" + }, + "domain-names.placeholder": { + "defaultMessage": "Comece a escrever para adicionar um domínio..." + }, + "domain-names.wildcards-not-permitted": { + "defaultMessage": "Wildcards não permitidos para este tipo" + }, + "domain-names.wildcards-not-supported": { + "defaultMessage": "Wildcards não suportados por esta AC" + }, + "domains.force-ssl": { + "defaultMessage": "Forçar SSL" + }, + "domains.hsts-enabled": { + "defaultMessage": "HSTS Ativado" + }, + "domains.hsts-subdomains": { + "defaultMessage": "HSTS para Subdomínios" + }, + "domains.http2-support": { + "defaultMessage": "Suporte HTTP/2" + }, + "domains.use-dns": { + "defaultMessage": "Utilizar DNS Challenge" + }, + "email-address": { + "defaultMessage": "Endereço de Email" + }, + "empty-search": { + "defaultMessage": "Nenhum resultado encontrado" + }, + "empty-subtitle": { + "defaultMessage": "Porque não cria um?" + }, + "enabled": { + "defaultMessage": "Ativado" + }, + "error.access.at-least-one": { + "defaultMessage": "É necessária pelo menos uma Autorização ou uma Regra de Acesso" + }, + "error.access.duplicate-usernames": { + "defaultMessage": "Os nomes de utilizador de autorização devem ser únicos" + }, + "error.invalid-auth": { + "defaultMessage": "Email ou palavra-passe inválidos" + }, + "error.invalid-domain": { + "defaultMessage": "Domínio inválido: {domain}" + }, + "error.invalid-email": { + "defaultMessage": "Endereço de email inválido" + }, + "error.max-character-length": { + "defaultMessage": "Tamanho máximo: {max} caractere{max, plural, one {} other {s}}" + }, + "error.max-domains": { + "defaultMessage": "Demasiados domínios; o máximo é {max}" + }, + "error.maximum": { + "defaultMessage": "Máximo permitido: {max}" + }, + "error.min-character-length": { + "defaultMessage": "Tamanho mínimo: {min} caractere{min, plural, one {} other {s}}" + }, + "error.minimum": { + "defaultMessage": "Mínimo permitido: {min}" + }, + "error.passwords-must-match": { + "defaultMessage": "As palavras-passe têm de coincidir" + }, + "error.required": { + "defaultMessage": "Campo obrigatório" + }, + "expires.on": { + "defaultMessage": "Expira em: {date}" + }, + "footer.github-fork": { + "defaultMessage": "Faz fork no GitHub" + }, + "host.flags.block-exploits": { + "defaultMessage": "Bloquear Exploits Comuns" + }, + "host.flags.cache-assets": { + "defaultMessage": "Cache de Conteúdos Estáticos" + }, + "host.flags.preserve-path": { + "defaultMessage": "Preservar Caminho" + }, + "host.flags.protocols": { + "defaultMessage": "Protocolos" + }, + "host.flags.websockets-upgrade": { + "defaultMessage": "Suporte para WebSockets" + }, + "host.forward-port": { + "defaultMessage": "Porta de Encaminhamento" + }, + "host.forward-scheme": { + "defaultMessage": "Esquema" + }, + "hosts": { + "defaultMessage": "Hosts" + }, + "http-only": { + "defaultMessage": "Apenas HTTP" + }, + "lets-encrypt": { + "defaultMessage": "Let's Encrypt" + }, + "lets-encrypt-via-dns": { + "defaultMessage": "Let's Encrypt via DNS" + }, + "lets-encrypt-via-http": { + "defaultMessage": "Let's Encrypt via HTTP" + }, + "loading": { + "defaultMessage": "A carregar…" + }, + "login.title": { + "defaultMessage": "Iniciar sessão na sua conta" + }, + "nginx-config.label": { + "defaultMessage": "Configuração Nginx Personalizada" + }, + "nginx-config.placeholder": { + "defaultMessage": "# Insira aqui a sua configuração Nginx personalizada (utilize por sua conta e risco!)" + }, + "no-permission-error": { + "defaultMessage": "Não tem permissões para ver esta página." + }, + "notfound.action": { + "defaultMessage": "Voltar à página inicial" + }, + "notfound.content": { + "defaultMessage": "A página que procura não foi encontrada." + }, + "notfound.title": { + "defaultMessage": "Oops… Encontrou uma página de erro" + }, + "notification.error": { + "defaultMessage": "Erro" + }, + "notification.object-deleted": { + "defaultMessage": "{object} foi eliminado" + }, + "notification.object-disabled": { + "defaultMessage": "{object} foi desativado" + }, + "notification.object-enabled": { + "defaultMessage": "{object} foi ativado" + }, + "notification.object-renewed": { + "defaultMessage": "{object} foi renovado" + }, + "notification.object-saved": { + "defaultMessage": "{object} foi guardado" + }, + "notification.success": { + "defaultMessage": "Sucesso" + }, + "object.actions-title": { + "defaultMessage": "{object} #{id}" + }, + "object.add": { + "defaultMessage": "Adicionar {object}" + }, + "object.delete": { + "defaultMessage": "Eliminar {object}" + }, + "object.delete.content": { + "defaultMessage": "Tem a certeza de que deseja eliminar este {object}?" + }, + "object.edit": { + "defaultMessage": "Editar {object}" + }, + "object.empty": { + "defaultMessage": "Não existem {objects}" + }, + "object.event.created": { + "defaultMessage": "{object} criado" + }, + "object.event.deleted": { + "defaultMessage": "{object} eliminado" + }, + "object.event.disabled": { + "defaultMessage": "{object} desativado" + }, + "object.event.enabled": { + "defaultMessage": "{object} ativado" + }, + "object.event.renewed": { + "defaultMessage": "{object} renovado" + }, + "object.event.updated": { + "defaultMessage": "{object} atualizado" + }, + "offline": { + "defaultMessage": "Offline" + }, + "online": { + "defaultMessage": "Online" + }, + "options": { + "defaultMessage": "Opções" + }, + "password": { + "defaultMessage": "Palavra-passe" + }, + "password.generate": { + "defaultMessage": "Gerar palavra-passe aleatória" + }, + "password.hide": { + "defaultMessage": "Esconder Palavra-passe" + }, + "password.show": { + "defaultMessage": "Mostrar Palavra-passe" + }, + "permissions.hidden": { + "defaultMessage": "Oculto" + }, + "permissions.manage": { + "defaultMessage": "Gerir" + }, + "permissions.view": { + "defaultMessage": "Apenas Visualização" + }, + "permissions.visibility.all": { + "defaultMessage": "Todos os Itens" + }, + "permissions.visibility.title": { + "defaultMessage": "Visibilidade do Item" + }, + "permissions.visibility.user": { + "defaultMessage": "Apenas Itens Criados" + }, + "proxy-host": { + "defaultMessage": "Proxy Host" + }, + "proxy-host.forward-host": { + "defaultMessage": "Hostname/IP de Encaminhamento" + }, + "proxy-hosts": { + "defaultMessage": "Proxy Hosts" + }, + "proxy-hosts.count": { + "defaultMessage": "{count} {count, plural, one {Proxy Host} other {Proxy Hosts}}" + }, + "public": { + "defaultMessage": "Público" + }, + "redirection-host": { + "defaultMessage": "Host de Redirecionamento" + }, + "redirection-host.forward-domain": { + "defaultMessage": "Domínio de Destino" + }, + "redirection-host.forward-http-code": { + "defaultMessage": "Código HTTP" + }, + "redirection-hosts": { + "defaultMessage": "Hosts de Redirecionamento" + }, + "redirection-hosts.count": { + "defaultMessage": "{count} {count, plural, one {Host de Redirecionamento} other {Hosts de Redirecionamento}}" + }, + "redirection-hosts.http-code.300": { + "defaultMessage": "300 Múltiplas Escolhas" + }, + "redirection-hosts.http-code.301": { + "defaultMessage": "301 Movido Permanentemente" + }, + "redirection-hosts.http-code.302": { + "defaultMessage": "302 Movido Temporariamente" + }, + "redirection-hosts.http-code.303": { + "defaultMessage": "303 Ver Outro" + }, + "redirection-hosts.http-code.307": { + "defaultMessage": "307 Redirecionamento Temporário" + }, + "redirection-hosts.http-code.308": { + "defaultMessage": "308 Redirecionamento Permanente" + }, + "role.admin": { + "defaultMessage": "Administrador" + }, + "role.standard-user": { + "defaultMessage": "Utilizador Comum" + }, + "save": { + "defaultMessage": "Guardar" + }, + "setting": { + "defaultMessage": "Definição" + }, + "settings": { + "defaultMessage": "Definições" + }, + "settings.default-site": { + "defaultMessage": "Site Predefinido" + }, + "settings.default-site.404": { + "defaultMessage": "Página 404" + }, + "settings.default-site.444": { + "defaultMessage": "Sem Resposta (444)" + }, + "settings.default-site.congratulations": { + "defaultMessage": "Página de Boas-vindas" + }, + "settings.default-site.description": { + "defaultMessage": "O que apresentar quando o Nginx recebe um Host desconhecido" + }, + "settings.default-site.html": { + "defaultMessage": "HTML Personalizado" + }, + "settings.default-site.html.placeholder": { + "defaultMessage": "" + }, + "settings.default-site.redirect": { + "defaultMessage": "Redirecionar" + }, + "setup.preamble": { + "defaultMessage": "Comece por criar a sua conta de administrador." + }, + "setup.title": { + "defaultMessage": "Bem-vindo!" + }, + "sign-in": { + "defaultMessage": "Iniciar Sessão" + }, + "ssl-certificate": { + "defaultMessage": "Certificado SSL" + }, + "stream": { + "defaultMessage": "Stream" + }, + "stream.forward-host": { + "defaultMessage": "Host de Destino" + }, + "stream.forward-host.placeholder": { + "defaultMessage": "example.com ou 10.0.0.1 ou 2001:db8:3333:4444:5555:6666:7777:8888" + }, + "stream.incoming-port": { + "defaultMessage": "Porta de Entrada" + }, + "streams": { + "defaultMessage": "Streams" + }, + "streams.count": { + "defaultMessage": "{count} {count, plural, one {Stream} other {Streams}}" + }, + "streams.tcp": { + "defaultMessage": "TCP" + }, + "streams.udp": { + "defaultMessage": "UDP" + }, + "test": { + "defaultMessage": "Testar" + }, + "update-available": { + "defaultMessage": "Atualização Disponível: {latestVersion}" + }, + "user": { + "defaultMessage": "Utilizador" + }, + "user.change-password": { + "defaultMessage": "Alterar Palavra-passe" + }, + "user.confirm-password": { + "defaultMessage": "Confirmar Palavra-passe" + }, + "user.current-password": { + "defaultMessage": "Palavra-passe Atual" + }, + "user.edit-profile": { + "defaultMessage": "Editar Perfil" + }, + "user.full-name": { + "defaultMessage": "Nome Completo" + }, + "user.login-as": { + "defaultMessage": "Iniciar sessão como {name}" + }, + "user.logout": { + "defaultMessage": "Terminar Sessão" + }, + "user.new-password": { + "defaultMessage": "Nova Palavra-passe" + }, + "user.nickname": { + "defaultMessage": "Alcunha" + }, + "user.set-password": { + "defaultMessage": "Definir Palavra-passe" + }, + "user.set-permissions": { + "defaultMessage": "Definir Permissões para {name}" + }, + "user.switch-dark": { + "defaultMessage": "Ativar Modo Escuro" + }, + "user.switch-light": { + "defaultMessage": "Ativar Modo Claro" + }, + "username": { + "defaultMessage": "Nome de Utilizador" + }, + "users": { + "defaultMessage": "Utilizadores" + } +}