diff --git a/client/src/locale/pt.js b/client/src/locale/pt.js index fe3bb3a6..59d6e27b 100644 --- a/client/src/locale/pt.js +++ b/client/src/locale/pt.js @@ -1,566 +1,607 @@ const pt = { code: "PT", - name: "Portugese", - select_locale: "Change language to English", + name: "Português", + select_locale: "Mudar o idioma para Português", languages: { - language: "Language", - languageTooltip: "Choose the language of the invitation mail", - en: "English", - nl: "Dutch", + language: "Idioma", + languageTooltip: "Escolha o idioma do e-mail de convite", + en: "Inglês", + nl: "Holandês", + pt: "Português", }, landing: { header: { - title: "Manage access to your applications", - login: "Log in", - sup: "SURFconext Invite is by invitation only.", + title: "Gerir acesso às suas aplicações", + login: "Iniciar sessão", + sup: "O SURFconext Invite funciona apenas por convite.", }, - works: "How does it work?", - adminFunction: "admin function", + works: "Como funciona?", + adminFunction: "perfil de administrador", info: [ //Arrays of titles and info blocks and if a function is an admin function - ["Invites", "

SURF invites institution admins who can create roles for their applications.

" + - "

The application list consists of applications connected to SURFconext.

", true], - ["Roles", "

The role managers will invite colleagues for roles who can in turn invite users.

", true], - ["Join", "

Invited colleagues who accept the invitation are granted access rights for the applications.


", false], - ["Groups", "

The roles are actually group memberships that can be used in SURFconext authorisation rules, or provisioned as attributes or to external SCIM APIs.

", false] + ["Convites", "

A SURF convida administradores de instituições que podem criar grupos de acesso para as suas aplicações.

" + + "

A lista de aplicações consiste em aplicações ligadas ao SURFconext.

", true], + ["Grupos de Acesso", "

Os administradores institucionais convidarão colegas para grupos de acesso que, por sua vez, podem convidar utilizadores.

", true], + ["Juntar-se", "

Os colegas convidados que aceitarem o convite recebem direitos de acesso às aplicações.


", false], + ["Grupos", "

Os grupos de acesso são, na verdade, grupos que podem ser usados em regras de autorização no SURFconext, ou provisionados como atributos ou em APIs SCIM externas.

", false] ], - footer: "

SURFconext Invite offers access management to SURFconext-connected applications.

" + - "

Do you want to know more? Read more.

", + footer: "

O SURFconext Invite oferece gestão de acesso a aplicações ligadas ao SURFconext.

" + + "

Quer saber mais? Saiba mais.

", }, header: { title: "SURFconext Invite", - subTitle: "Everything will be owl right", + subTitle: "Gerir acesso às suas aplicações", links: { - login: "Log in", - system: "System", - switchApp: "Go to {{app}}", - welcome: "Welcome", - access: "Invite", - help: "Help", - profile: "Profile", + login: "Iniciar sessão", + system: "Sistema", + switchApp: "Ir para {{app}}", + welcome: "Bem-vindo", + access: "Convite", + help: "Ajuda", + profile: "O meu perfil", tokens: "Tokens", - logout: "Log out", - audit: "Role history" + logout: "Terminar sessão", + audit: "Histórico do grupo", + colleagues: "Funções institucionais" }, }, tabs: { - home: "Home", - applications: "Applications", - users: "Users", - applicationUsers: "Users", - maintainers: "Role managers & inviters", - guests: "User with this role", - invitations: "Invitations", - roles: "Access roles", - profile: "Profile", - userRoles: "Role managers & inviters", - guestRoles: "Users with this role", + home: "Início", + applications: "Aplicações", + users: "Utilizadores", + applicationUsers: "Utilizadores", + maintainers: "Gestores de grupos e convites", + guests: "Utilizadores com este acesso", + invitations: "Convites", + roles: "Grupos de acesso", + profile: "O meu perfil", + userRoles: "Gestores de grupos e convites", + guestRoles: "Utilizadores com este acesso", cron: "Cron", - invite: "Invite", - tokens: "API tokens", - unknownRoles: "Missing applications", - expiredUserRoles: "User role expirations", - pendingInvitations: "Pending", - allPendingInvitations: "Pending invitations", - acceptedInvitations: "Accepted", - performanceSeed: "Seed", - seed: "Seed", - login: "Login" + invite: "Convidar", + tokens: "Tokens de API", + unknownRoles: "Aplicações em falta", + expiredUserRoles: "Expiração de acesso de utilizadores", + pendingInvitations: "Pendentes", + allPendingInvitations: "Convites pendentes", + acceptedInvitations: "Aceites", + performanceSeed: "Semente", + seed: "Semente", + login: "Iniciar sessão" }, home: { access: "SURFconext Invite", }, impersonate: { - exit: "Stop impersonating", - impersonator: "You are impersonating {{name}} | {{role}}", - impersonatorTooltip: "You are really {{impersonator}}, but you are impersonating {{currentUser}}.", + exit: "Parar de personificar", + impersonator: "Está a personificar {{name}} | {{role}}", + impersonatorTooltip: "É realmente {{impersonator}}, mas está a personificar {{currentUser}}.", flash: { - startedImpersonation: "You now impersonate {{name}}.", - clearedImpersonation: "Cleared your impersonation. You are you again." + startedImpersonation: "Agora está a personificar {{name}}.", + clearedImpersonation: "Parou de personificar. Voltou a ser você mesmo." }, }, access: { - SUPER_USER: "Superuser", - INSTITUTION_ADMIN: "Institution admin", - MANAGER: "Role manager", - INVITER: "Inviter", - GUEST: "User", - "No member": "No member" + SUPER_USER: "Superutilizador", + INSTITUTION_ADMIN: "Admin. Institucional", + APPLICATION_MANAGER: "Gestor de aplicações", + MANAGER: "Gestor de Grupo", + INVITER: "Gestor de Convites", + GUEST: "Utilizador", + "No member": "Não é membro" }, users: { - found: "{{count}} {{plural}} found", - moreResults: "There are more results than shown, please refine your search.", - applicationsSearchPlaceHolder: "Search for application...", - name_email: "Name / email", - name: "Name", - email: "Email", - highestAuthority: "Role", - createdAt: "Created", - schacHomeOrganization: "Institution", - lastActivity: "Last activity", - organizationGUID: "Organization GUID", + found: "{{count}} {{plural}} encontrados", + moreResults: "Existem mais resultados do que os mostrados, refine a sua pesquisa.", + applicationsSearchPlaceHolder: "Pesquisar aplicação...", + name_email: "Nome / e-mail", + name: "Nome", + email: "E-mail", + highestAuthority: "Perfil de acesso", + createdAt: "Criado", + schacHomeOrganization: "Instituição", + lastActivity: "Última atividade", + organizationGUID: "GUID da Organização", eduPersonPrincipalName: "EPPN", sub: "Sub", - singleUser: "user", - multipleUsers: "users", - noEntities: "No users found", - new: "New invitation", - title: "Users", - roles: "Roles", - applications: "Applications", - noRolesInfo: "You have no roles (which means you must be super-user)", - noRolesInstitutionAdmin: "You are an institution admin and you have no roles (but you might have access to applications)", - noRolesInstitutionAdminOther: "{{name}} is an institution admin and has no roles (but might have access to applications)", - noRolesNoApplicationsInstitutionAdmin: "You are an institution admin, but you have no roles and apparently your institution has also no access to applications", - guestRoleOnly: "You are not an administrator. Are you looking for the apps you can access?", - rolesInfo: "You have the following roles", - applicationsInfo: "You have access to the following applications", - noRolesFound: "No roles are found.", - noApplicationsFound: "No applications are found.", - rolesInfoOther: "{{name}} has the following roles", - applicationsInfoOther: "{{name}} has access to the following applications", - landingPage: "Landing page", - access: "Access", - organisation: "Organisation", - noResults: "No users are found", - searchPlaceHolder: "Search for users...", - authority: "Authority", - endDate: "End date", - expiryDays: "Expiry days", - roleExpiryTooltip: "Sort on roles to see which roles will expire the soonest", - deleteFlash: "User {{name}} has been deleted", - deleteConfirmation: "Are you absolutely sure you want to delete user {{name}}? There is no undo button.", - institutionAdmins: "Your fellow Institution administrators are:", - onlyInstitutionAdmins: "You are the only Institution admin within your organisation", + singleUser: "utilizador", + multipleUsers: "utilizadores", + noEntities: "Nenhum utilizador encontrado", + new: "Novo convite", + title: "Utilizadores", + roles: "Grupos de acesso", + applications: "Aplicações", + noRolesInfo: "Não tem grupos de acesso (o que significa que deve ser superutilizador)", + noRolesInstitutionAdmin: "É um administrador da instituição e não tem grupos de acesso (mas pode ter acesso a aplicações)", + noRolesInstitutionAdminOther: "{{name}} é um administrador da instituição e não tem grupos de acesso (mas pode ter acesso a aplicações)", + noRolesNoApplicationsInstitutionAdmin: "É um administrador da instituição, mas não tem grupos de acesso e aparentemente a sua instituição também não tem acesso a aplicações", + noRolesInfoApplicationManager: "Não tem grupos de acesso, mas é gestor de aplicações e tem acesso a aplicações", + noRolesInfoApplicationManagerOther: "{{name}} não tem grupos de acesso, mas é gestor de aplicações e tem acesso a aplicações", + guestRoleOnly: "Não é um administrador. Está à procura das aplicações a que pode aceder?", + rolesInfo: "Tem os seguintes grupos de acesso", + applicationsInfo: "Tem acesso às seguintes aplicações", + noRolesFound: "Nenhum grupo de acesso encontrado.", + noApplicationsFound: "Nenhuma aplicação encontrada.", + rolesInfoOther: "{{name}} tem os seguintes grupos de acesso", + applicationsInfoOther: "{{name}} tem acesso às seguintes aplicações", + landingPage: "Página inicial", + access: "Acesso", + organisation: "Organização", + noResults: "Nenhum utilizador encontrado", + searchPlaceHolder: "Pesquisar utilizadores...", + authority: "Perfil", + endDate: "Data de término", + expiryDays: "Dias de expiração", + roleExpiryTooltip: "Ordenar por grupo de acesso para ver quais irão expirar mais cedo", + deleteFlash: "O utilizador {{name}} foi eliminado", + deleteConfirmation: "Confirma a eliminação do utilizador {{name}}? Não existe botão de desfazer.", + institutionAdmins: "Os restantes administradores da sua instituição são:", + onlyInstitutionAdmins: "É o único administrador da instituição na sua organização", + removeInstitutionAdminConfirmation: "Tem a certeza de que pretende remover os direitos de administrador da instituição de {{userName}}?", + removeInstitutionAdminFlash: "Os direitos de administrador da instituição foram removidos de {{userName}}" }, role: { - copyUrn: "Copy urn", - userInfo: "{{nbr}} member(s) & invalid {{period}}", - roleInfo: "Role valid for {{days}} days", - roleInfoNoEndDate: "Role has no end date", - contactAdmin: "Contact role manager(s)", - institutionAdmin: "Institution admins: {{names}}", - noInstitutionAdmin: "There is not institution admins" + copyUrn: "Copiar URN", + userInfo: "{{nbr}} membro(s) & expira {{period}}", + roleInfo: "Grupo de acesso válido por {{days}} dias", + roleInfoNoEndDate: "O grupo de acesso não tem data de término", + contactAdmin: "Contactar gestor(es)", + institutionAdmin: "Administradores da instituição: {{names}}", + noInstitutionAdmin: "Não há administradores da instituição para este grupo" }, roles: { - title: "Access Roles", - applicationName: "Application", - auditable: "Role {{name}} was created by {{createdBy}} at {{createdAt}}", - roleDetails: "Role details", - invitationDetails: "Invitation details", - applicationDetails: "Application(s) this role applies to", - addApplication: "Add application", - multiple: "Multiple applications", - applicationPlaceholder: "Choose an application...", - accessRole: "Name", - name: "Name", - namePlaceHolder: "The name of the role", - shortName: "Short name", - organizationGUID: "Organization GUID", - identityProvider: "Identity provider: {{name}}", - landingPage: "(Custom) landing page", - userRoleCount: "# Users", + title: "Grupos de Acesso", + applicationName: "Aplicação", + auditable: "O grupo de acesso {{name}} foi criado por {{createdBy}} em {{createdAt}}", + roleDetails: "Detalhes do grupo de acesso", + invitationDetails: "Detalhes do convite", + applicationDetails: "Aplicações a que este grupo de acesso se aplica", + addApplication: "Adicionar aplicação", + multiple: "Múltiplas aplicações", + applicationPlaceholder: "Escolha uma aplicação...", + accessRole: "Nome", + name: "Nome", + namePlaceHolder: "O nome do grupo de acesso", + shortName: "Nome abreviado", + organizationGUID: "GUID da Organização", + organizationGUIDValue: "GUID da Instituição: {{guid}}", + identityProvider: "Fornecedor de identidade", + identityProviderPlaceholder: "Pesquisar fornecedores de identidade...", + landingPage: "Página inicial (personalizada)", + userRoleCount: "# Utilizadores", landingPagePlaceHolder: "https://landingpage.com", - defaultExpiryDays: "Expiry days", - endDate: "End date", + defaultExpiryDays: "Dias de expiração (por defeito)", + endDate: "Data de término", noEndDate: "-", - authority: "Authority", - yourRole: "Your role", - description: "Description", - descriptionPlaceHolder: "The description of the role", - noResults: "No roles are found", - noMember: "No member", - searchPlaceHolder: "Search for roles...", - found: "{{count}} {{plural}} found", - singleRole: "role", - multipleRoles: "roles", - new: "Add new role", - edit: "Edit role {{name}}", + authority: "Perfil", + yourRole: "O seu perfil", + description: "Descrição", + descriptionPlaceHolder: "A descrição do grupo de acesso", + isCrm: "Grupo de mijnSURF", + noResults: "Nenhum grupo de acesso encontrado", + noMember: "Não é membro", + searchPlaceHolder: "Pesquisar grupos de acesso...", + found: "{{count}} {{plural}} encontrados", + singleRole: "grupo de acesso", + multipleRoles: "grupos de acesso", + new: "Novo grupo de acesso", + edit: "Editar grupo de acesso {{name}}", urn: "URN", - advanced: "Advanced settings", - showAdvancedSettings: "Show advanced invite settings", - hideAdvancedSettings: "Hide advanced invite settings", - override: "Override of settings allowed?", - manage: "Application", - manageMetaData: "SURFconext entity", - provisioning: "Provisioning", - deleteFlash: "Role {{name}} has been deleted", - deleteConfirmation: "Are you sure you want to delete this role?", - createFlash: "Role {{name}} has been created", - updateFlash: "Role {{name}} has been updated", - unknownInManage: "Unknown in Manage", - unknownInManageToolTip: "The application for this role has been removed from the SURF backend. Please contact support@surfconext.nl to resolve this.", - unknownInManageDisabled: "The application for this role has been removed from the SURF backend. Therefore, you can't invite new users. Contact support@surfconext.nl to resolve this.", + advanced: "Configurações avançadas", + showAdvancedSettings: "Mostrar configurações avançadas de convite", + hideAdvancedSettings: "Ocultar configurações avançadas de convite", + override: "Substituição de configurações permitida?", + manage: "Aplicação", + manageMetaData: "Entidade do SURFconext", + provisioning: "Provisionamento", + deleteFlash: "O grupo de acesso {{name}} foi eliminado", + deleteConfirmation: "Tem a certeza de que deseja eliminar este grupo de acesso?", + createFlash: "O grupo de acesso {{name}} foi criado", + updateFlash: "O grupo de acesso {{name}} foi atualizado", + unknownInManage: "Desconhecido no Manage", + unknownInManageToolTip: "A aplicação para este grupo de acesso foi removida da infraestrutura da SURF. Por favor, contacte support@surfconext.nl para resolver a situação.", + unknownInManageDisabled: "A aplicação para este grupo de acesso foi removida da infraestrutura da SURF. De momento, não pode convidar novos utilizadores. Por favor, contacte support@surfconext.nl para resolver a situação.", consequences: { - info: "The following users will lose their access:", - userInfo: "{{name}} ({{authority}}), last activity {{lastActivity}}", - andMore: "And {{nbr}} more.. Check the list of current users for more details." + info: "Os seguintes utilizadores perderão o acesso:", + userInfo: "{{name}} ({{authority}}), última atividade {{lastActivity}}", + andMore: "E mais {{nbr}}... Verifique a lista de utilizadores atuais para mais detalhes." }, - noProvisioning: "Users added to this role, won't have immediate access to this application. See the wiki for more information", - userRolesPresent: "You are not allowed to delete this role, as {{nbr}} user(s) have this role. You must first delete them." + noProvisioning: "Os utilizadores adicionados a este grupo não terão acesso imediato a esta aplicação. Consulte a wiki para mais informações.", + userRolesPresent: "Não tem permissão para eliminar este grupo, pois {{nbr}} utilizador(es) pertencem a este grupo. Tem de os remover primeiro deste grupo." }, applications: { - title: "Access Roles for this application ({{nbr}})", - applicationFound: "Applications ({{nbr}})", - new: "New Access Role", - searchPlaceHolder: "Search for applications", - noResults: "No applications found...", - name: "Application name", + title: "Grupos de acesso para esta aplicação ({{nbr}})", + applicationFound: "Aplicações ({{nbr}})", + new: "Novo grupo de acesso", + searchPlaceHolder: "Pesquisar aplicações...", + noResults: "Nenhuma aplicação encontrada...", + name: "Nome da aplicação", types: { saml20_sp: "Service Provider", oidc10_rp: "Relying Party" }, - type: "Type", - organization: "Organization", + type: "Tipo", + organization: "Organização", url: "URL", - roles: "Roles", - provisionings: "Provisionings", - accessRole: "Access Role", + roles: "Grupos de acesso", + provisionings: "Provisionamentos", + accessRole: "Grupo de acesso", }, applicationRoles: { - searchPlaceHolder: "Search for Access Roles", - noEntities: "No access roles found", + searchPlaceHolder: "Pesquisar grupos de acesso", + noEntities: "Nenhum grupo de acesso encontrado", }, userRoles: { - found: "{{count}} {{plural}} found", - singleUserRole: "user role", - multipleUserRoles: "user roles", - searchPlaceHolder: "Search for users...", - noResults: "No user roles where found", - guestRoles: "{{count}} users", - managerRoles: "{{count}} managers & inviters", - notAllowed: "You're not allowed to delete this user role because of missing roles", - updateConfirmation: "Are you sure you want to change the end date of role {{roleName}} for {{userName}}?", - updateConfirmationRemoveEndDate: "Are you sure you want to remove the end date of role {{roleName}} for {{userName}}?", - updateFlash: "The end date for role {{roleName}} has been updated", - deleteConfirmation: "Are you sure you want to remove this role from this user(s)?", - deleteOneConfirmation: "Are you sure you want to remove this role from this user?", - deleteFlash: "User role(s) have been removed", - createdAt: "Date accepted", - delete: "Remove" + found: "{{count}} {{plural}} encontrados", + singleUserRole: "grupo de acesso do utilizador", + multipleUserRoles: "grupos de acesso do utilizador", + searchPlaceHolder: "Pesquisar utilizadores...", + noResults: "Nenhum grupo de acesso encontrado", + guestRoles: "{{count}} utilizadores", + managerRoles: "{{count}} gestores e responsáveis por convites", + notAllowed: "Não tem permissão para eliminar este grupo de acesso devido a grupos em falta", + updateConfirmation: "Tem a certeza de que deseja alterar a data de término do grupo de acesso {{roleName}} para {{userName}}?", + updateConfirmationRemoveEndDate: "Tem a certeza de que deseja remover a data de término do grupo de acesso {{roleName}} para {{userName}}?", + updateFlash: "A data de término do grupo de acesso {{roleName}} foi atualizada", + deleteConfirmation: "Tem a certeza de que deseja remover este grupo de acesso deste(s) utilizador(es)?", + deleteOneConfirmation: "Tem a certeza de que deseja remover este grupo de acesso deste utilizador?", + deleteFlash: "O(s) grupo(s) de acesso foram removidos", + createdAt: "Data de aceitação", + delete: "Remover" }, invitations: { - title: "Invitations", - searchPlaceHolder: "Search for invitation...", - noResults: "No invitation where found", - inviter: "Invited by", - status: "Status", - pending: "pending", - open: "Open", - accepted: "Accepted", - expired: "Expired", - mine: "Mine open invitations", - enforceEmailEquality: "Email equality", - eduIDOnly: "eduID only", - requestedAuthnContext: "ACR value", - requestedAuthnContextPlaceHolder: "Choose a ACR value for user stepup...", - requestedAuthnContextWarning: "To enforce the selected ACR also on the application(s) {{applications}}, " + - "additional configuration is needed on the eduID Identity Provider. " + - "Please contact support@surfconext.nl to request this change.", - new: "Invite role manager or inviter", - newInvitation: "Invite inviter", - newInvite: "New invite", - newGuest: "Invite new user", - invitees: "Invitees", - intendedRoles: "Roles", - inviteesPlaceholder: "Invitee email addresses", - requiredEmail: "At least one email address is required", - requiredRole: "At least one role is required for an invitation", - requiredOrganizationGUID: "A valid Organization GUID is required for an institution admin invitation", - intendedAuthority: "Authority", - roles: "Roles", - inviterRoles: "Select the roles for the new invitation", - rolesPlaceHolder: "Choose one or more roles", - expiryDate: "Valid till", - acceptedAt: "Date accepted", - roleExpiryDate: "Role expiry date", - roleExpiryDateQuestion: "Set a custom role expiration", - roleExpiryDateInfo: "This role will be removed from the user {{expiry}}", - roleExpiryDateInfoDefault: "By default this role will be removed from a user after {{days}} days", - removeRole: "Remove role", - after: "After", - on: "On", - days: "Days", - customInviterDisplayNameQuestion: "Set a custom inviter name", - inviterDisplayName: "Custom inviter display name for invitations", - inviterDisplayNamePlaceholder: "e.g. working@home.university.nl", - inviterDisplayNameError: "Custom inviter name is required, unless you use the default inviter name", - customInviterDisplayNameInfoDefault: "Invitations for this role will show the name of the inviter as sender", - customInviterDisplayNameInfo: "Invitations for this role will show a custom name / email as sender", - expiryDateQuestion: "Set a custom invitation expiration period", - expiryDateInfo: "Default an invitation is valid for 1 month", - withinThreeMonths: "Within 1 month", - createdAt: "Sent", - message: "Personal note", - messagePlaceholder: "Add an optional personal note to your invitation", - invite: "Send invite", - guestRoleIncluded: "Add the user role?", - notifyInviter: "Notify me when accepted?", - invalidEmails: "Invalid email addresses removed: {{emails}}.", - createFlash: "Invitation was sent", - delete: "Revoke", - resend: "Resend", - notAllowed: "You're not allowed to delete or resend this invitation because of missing roles", - deleteFlash: "Invitation(s) have been revoke", - deleteConfirmation: "Are you sure you want to revoke these invitations?", - deleteOneConfirmation: "Are you sure you want to revoke this invitation?", - resendConfirmation: "Are you sure you want to resend these invitations?", - resendConfirmationOne: "Are you sure you want to resend this invitation?", - resendFlash: "Invitation(s) have been resent", + title: "Convites", + searchPlaceHolder: "Pesquisar convite...", + noResults: "Nenhum convite encontrado", + inviter: "Convidado por", + status: "Estado", + pending: "pendente", + open: "Aberto", + accepted: "Aceite", + expired: "Expirado", + mine: "Os meus convites em aberto", + enforceEmailEquality: "O e-mail tem de corresponder", + eduIDOnly: "Apenas eduID", + requestedAuthnContext: "Valor ACR", + requestedAuthnContextPlaceHolder: "Escolha um valor ACR para elevação de autenticação do utilizador...", + requestedAuthnContextWarning: "Para impor o ACR selecionado também à(s) aplicação(ões) {{applications}}, " + + "é necessária configuração adicional no Fornecedor de Identidade eduID. " + + "Por favor contacte support@surfconext.nl para solicitar esta alteração.", + new: "Convidar gestor ou responsável por convites", + newInvitation: "Convidar responsável por convites", + newInvite: "Novo convite", + newGuest: "Convidar novo utilizador", + invitees: "Convidados", + intendedRoles: "Grupos de acesso", + inviteesPlaceholder: "Endereços de e-mail dos convidados", + requiredEmail: "É necessário pelo menos um endereço de e-mail", + requiredRole: "É necessário pelo menos um grupo de acesso para um convite", + requiredApplication: "É necessária pelo menos uma aplicação para convidar um gestor de aplicações", + requiredOrganizationGUID: "É necessário um GUID de Organização válido para um convite de administrador institucional", + intendedAuthority: "Perfil", + roles: "Grupos de acesso", + inviterRoles: "Selecione os grupos de acesso para o novo convite", + rolesPlaceHolder: "Escolha um ou mais grupos de acesso", + rolesPlaceHolderLoading: "Aguarde enquanto todos os grupos são carregados...", + applications: "Aplicações", + applicationsPlaceHolder: "Escolha uma ou mais aplicações", + applicationsPlaceHolderLoading: "Aguarde enquanto as aplicações são carregadas...", + expiryDate: "Válido até", + acceptedAt: "Data de aceitação", + roleExpiryDate: "Data de expiração do grupo", + roleExpiryDateQuestion: "Definir um período de expiração personalizado para o grupo", + roleExpiryDateInfo: "Este grupo será removido do utilizador {{expiry}}", + roleExpiryDateInfoOn: "Este grupo será removido do utilizador em {{date}}", + roleExpiryDateInfoDefault: "Por defeito, este grupo será removido de um utilizador após {{days}} dias", + removeRole: "Remover grupo", + after: "Após", + on: "Em", + days: "Dias", + customInviterDisplayNameQuestion: "Definir um nome de remetente personalizado", + inviterDisplayName: "Nome de remetente personalizado para convites", + inviterDisplayNamePlaceholder: "ex. trabalho@minha.universidade.pt", + inviterDisplayNameError: "O nome de remetente personalizado é obrigatório, a menos que utilize o nome de remetente padrão", + customInviterDisplayNameInfoDefault: "Os convites para este grupo mostrarão o nome do remetente como remetente", + customInviterDisplayNameInfo: "Os convites para este grupo mostrarão um nome/e-mail personalizado como remetente", + expiryDateQuestion: "Definir um período de expiração personalizado para o convite", + expiryDateInfo: "Por defeito, um convite é válido por 1 mês", + withinThreeMonths: "Dentro de 1 mês", + createdAt: "Enviado", + message: "Nota pessoal", + messagePlaceholder: "Adicione uma nota pessoal opcional ao seu convite", + invite: "Enviar convite", + guestRoleIncluded: "Adicionar o perfil de utilizador?", + notifyInviter: "Notificar-me quando o convite for aceite?", + invalidEmails: "Endereços de e-mail inválidos removidos: {{emails}}.", + createFlash: "Convite enviado", + delete: "Revogar", + resend: "Reenviar", + notAllowed: "Não tem permissão para eliminar ou reenviar este convite devido a grupos em falta", + deleteFlash: "Convite(s) revogado(s)", + deleteConfirmation: "Tem a certeza de que deseja revogar estes convites?", + deleteOneConfirmation: "Tem a certeza de que deseja revogar este convite?", + resendConfirmation: "Tem a certeza de que deseja reenviar estes convites?", + resendConfirmationOne: "Tem a certeza de que deseja reenviar este convite?", + resendFlash: "Convite(s) reenviado(s)", inviterRole: { - title: "Send new invite", - roles: "For the following roles", - to: "To", - message: "Personal note", - settings: "Advanced invite settings" + title: "Enviar novo convite", + roles: "Para os seguintes grupos de acesso", + to: "Para", + message: "Nota pessoal", + settings: "Configurações avançadas de convite" }, statuses: { - all: "All ({{nbr}})", - open: "Open", - accepted: "Accepted", - expired: "Expired", - mine: "Mine" + all: "Todos ({{nbr}})", + open: "Aberto", + accepted: "Aceite", + expired: "Expirado", + mine: "Os meus" } }, forms: { - none: "None", - notApplicable: "N/A", - you: "You", - yes: "Yes", - no: "No", + none: "Nenhum", + notApplicable: "n/a", + you: "Você", + yes: "Sim", + no: "Não", ok: "OK", - or: "or ", - fixed: "or set a fixed date", - edit: "Edit", - reset: "Reset", - cancel: "Cancel", - save: "Save", - specificDate: "Set specific date", - and: "and", - more: "More", - less: "Less", - alreadyExists: "The {{attribute}} '{{value}}' already exists", - alreadyExistsParent: "The {{attribute}} {{value}} already exists within {{parent}}", - required: "{{attribute}} is required", - invalid: "The value '{{value}}' is invalid for {{attribute}}", - error: "You can contact support@surfconext.nl for help.

" + - "The reference number for this exception is {{reference}}." + or: "ou ", + fixed: "ou defina uma data fixa", + edit: "Editar", + reset: "Repor", + cancel: "Cancelar", + save: "Guardar", + specificDate: "Definir data específica", + and: "e", + more: "Mais", + less: "Menos", + alreadyExists: "O {{attribute}} '{{value}}' já existe", + alreadyExistsParent: "O {{attribute}} {{value}} já existe dentro de {{parent}}", + required: "{{attribute}} é necessário", + invalid: "O valor '{{value}}' é inválido para {{attribute}}", + error: "Pode contactar support@surfconext.nl para obter ajuda.

" + + "O número de referência para esta exceção é {{reference}}." }, profile: { - info: "The account of {{name}} was created on {{createdAt}}", - your: "Your account was created on {{createdAt}}" + info: "A conta de {{name}} foi criada em {{createdAt}}", + your: "A sua conta foi criada em {{createdAt}}" }, inviteOnly: { - welcome: "Welcome to SURFconext Invite", - roles: "You don't have any roles.", - info: "SURFconext Invite is by invitation only. Please contact support@surfconext.nl with questions.", - preLogin: "Or ", - login: "log in", - postLogin: " again with a different institution", + welcome: "Bem-vindo ao SURFconext Invite", + roles: "Não tem grupos de acesso.", + info: "O SURFconext Invite funciona apenas por convite. Por favor, contacte support@surfconext.nl para questões.", + preLogin: "Ou ", + login: "inicie sessão", + postLogin: " novamente com uma instituição diferente", }, missingAttributes: { - welcome: "Welcome to SURFconext Invite", - attributes: "Your institution has not provided all required personal data. The following are missing:", - info: "If you want more information, please contact support@surfconext.nl.", - preLogin: "Or ", - login: "login", - postLogin: " again with a different institution.", + welcome: "Bem-vindo ao SURFconext Invite", + attributes: "A sua instituição não forneceu todos os dados pessoais necessários. Os seguintes estão em falta:", + info: "Se quiser mais informações, por favor contacte support@surfconext.nl.", + preLogin: "Ou ", + login: "inicie sessão", + postLogin: " novamente com uma instituição diferente.", sub: "sub", - email: "email", - givenName: "givenName", - familyName: "familyName", + email: "e-mail", + givenName: "nome próprio", + familyName: "apelido", schacHomeOrganization: "schacHomeOrganization" }, invitationAccept: { - hi: "Hi{{name}},", - nextStep: "Next: enjoy your new role", - expired: "This invitation has expired at {{expiryDate}}", - expiredInfo: "Please contact {{email}} and ask this person to send you a new invite.", - invited: "You have been invited to become {{authority}} for the {{plural}} {{roles}} by {{inviter}}.", - invitedNoRoles: "You have been invited to become {{authority}} by {{inviter}}", - enforceEmailEquality: " This invite can only be accepted by {{email}}.", - role: "role", - roles: "roles", + hi: "Olá{{name}},", + nextStep: "Próximo: aproveite o seu novo grupo de acesso", + expired: "Este convite expirou em {{expiryDate}}", + expiredInfo: "Por favor, contacte {{email}} e peça a esta pessoa para lhe enviar um novo convite.", + invited: "Foi convidado para se tornar {{authority}} para os {{plural}} {{roles}} por {{inviter}}.", + invitedNoRoles: "Foi convidado para se tornar {{authority}} por {{inviter}}", + enforceEmailEquality: " Este convite só pode ser aceite por {{email}}.", + role: "grupo", + roles: "grupos", progress: "1", - info: "SURFconext Invite provides access to application based on your roles.", - infoLogin: "You can log in with your institution account or eduID.", - infoLoginEduIDOnly: "You need to log in with eduID.", - infoLoginAgain: "To accept the invitation you'll need to log in again.", - login: "Log in", - loginWithSub: "Log in", - emailMismatch: "The inviter has indicated that you must accept this invitation with email address {{email}}, " + - "but you have logged in with an account with a different email address. Please log in in with a different account.", - crmOrganisationMismatch: "You already have a membership of a different CRM organisation. Please log in in with a different account.

Message from the server: {{message}}" + info: "O SURFconext Invite fornece acesso a aplicações com base nos seus grupos.", + infoLogin: "Pode iniciar sessão com a sua conta da instituição ou com eduID.", + infoLoginEduIDOnly: "Precisa de iniciar sessão com eduID.", + infoLoginAgain: "Para aceitar o convite, precisará de iniciar sessão novamente.", + login: "Iniciar sessão", + loginWithSub: "Iniciar sessão", + emailMismatch: "O remetente do convite indicou que deve aceitar este convite com o endereço de e-mail {{email}}, " + + "mas iniciou sessão com uma conta com um endereço de e-mail diferente. Por favor, inicie sessão com uma conta diferente.", + crmOrganisationMismatch: "Já é membro de uma organização CRM diferente. Inicie sessão com outra conta.

Mensagem do servidor: {{message}}" }, inviter: { - welcome: "Welcome, {{name}}", - info: "Manage who gets access to the educational applications at your institution.", - sendInvite: "Send new invite", - viewHistory: "view history", - manage: "You can manage users and send invites for", - details: "Show details", - history: "Invitation history" + welcome: "Bem-vindo, {{name}}", + info: "Gerir quem tem acesso às aplicações educacionais na sua instituição.", + sendInvite: "Enviar novo convite", + viewHistory: "ver histórico", + manage: "Pode gerir utilizadores e enviar convites para", + details: "Mostrar detalhes", + history: "Histórico de convites" }, institutionAdmin: { - welcome: "Welcome institution administrator of {{name}}! You can start with creating your first role and subsequently invite role managers.", - create: "Create access role" + welcome: "Bem-vindo administrador da instituição de {{name}}! Pode começar por criar o seu primeiro grupo de acesso e, posteriormente, convidar gestores.", + create: "Criar grupo de acesso" }, tokens: { - title: "API tokens", - new: "Add API token", - searchPlaceHolder: "Search for API tokens...", - noEntities: "No API tokens", - titleNew: "Create an API token for {{institutions}}", - backToOverview: "Back to all API tokens", - createdAt: "Created at", - secretDisclaimer: "You can view this API token only once. Copy it and store it somewhere safe.

If the token is lost, delete it and create a new one.", - secret: "API token", - secretValue: "One-way hashed token", - secretTooltip: "The value to use in the X-API-TOKEN header", - description: "Description", - superUserToken: "Super User token", - organizationGUID: "Organization GUID", - descriptionPlaceHolder: "Description for this API token", - descriptionTooltip: "A description explaining the use of this API token", - deleteFlash: "API token has been deleted", - deleteConfirmation: "Are you sure you want to delete this API token?", - createFlash: "API token has been created", - submit: "Submit", - required: "The description is required for an API token", - userTokens: "Your personal API tokens", - owner: "Owner" + title: "Tokens de API", + new: "Novo token de API", + searchPlaceHolder: "Pesquisar tokens de API...", + noEntities: "Nenhum token de API", + titleNew: "Criar um token de API para {{institutions}}", + backToOverview: "Voltar a todos os tokens de API", + createdAt: "Criado em", + secretDisclaimer: "Pode visualizar este token de API apenas uma vez. Copie-o e guarde-o num local seguro.

Se perder o token, elimine-o e crie um novo.", + secret: "Token de API", + secretValue: "Token com hash unidirecional", + secretTooltip: "O valor a ser usado no cabeçalho X-API-TOKEN", + description: "Descrição", + superUserToken: "Token de Superutilizador", + organizationGUID: "GUID da Organização", + descriptionPlaceHolder: "Descrição para este token de API", + descriptionTooltip: "Uma descrição explicando o uso deste token de API", + deleteFlash: "O token de API foi eliminado", + deleteConfirmation: "Tem a certeza de que deseja eliminar este token de API?", + createFlash: "O token de API foi criado", + submit: "Submeter", + required: "A descrição é necessária para um token de API", + userTokens: "Os seus tokens de API pessoais", + owner: "Proprietário" }, tooltips: { - userIcon: "User {{name}} provisioned at {{createdAt}} with last activity on {{lastActivity}}", - impersonateIcon: "Impersonate user {{name}}", - roleIcon: "Role {{name}} created at {{createdAt}}", - userRoleIcon: "User role accepted by {{name}} at {{createdAt}}", - invitationIcon: "Invitation for {{email}} sent at {{createdAt}} with expiration date {{expiryDate}}", - roleShortName: "The unique short name of the role within a provisioning. It is used to format the urn and therefore not all characters are allowed.", - organizationGUID: "The Manage organizational identifier to scope the visibility of roles of the institution admin. Only specify a value if you are creating or editing this role on behalf of an institution admin", - roleUrn: "The urn of the role. It is based on the sanitized name and the role identifier. It is used as the unique global identifier of this role and therefore not all characters are allowed.", - manageService: "The required application from SURFconext, with may have an optional provisioning", - defaultExpiryDays: "The default number of days the role will expire, from the moment a user has accepted the invitation for this role", - enforceEmailEqualityTooltip: "When checked the invitee must accept the invitation with an account with the email address where the invitation was sent to", - eduIDOnlyTooltip: "When checked the invitees will be required to log in with eduID", - requestedAuthnContextTooltip: "The user will be forced to step up the authentication when logging in with eduID with the specified ARC", - roleExpiryDateTooltip: "The end date of this role. After this date the role is removed from the user.", - expiryDateTooltip: "The date on which this invitation expires", - inviterDisplayName: "The functional address which will used in the invitations of the role.

Default the name of the inviter is show.", - rolesTooltip: "Select all the roles that the invitee will be granted after accepting the invitation", - intendedAuthorityTooltip: "The authority determines the rights the invitee will be granted on accepting the invitation", - inviteesTooltip: "Add email addresses separated by comma, space or semi-colon or on seperate lines. You can also paste a csv file with line-separated email addresses.", - removeInvitation: "Delete all selected invitations", - removeOneInvitation: "Delete this invitation", - resendInvitation: "Resend all selected invitations", - resendOneInvitation: "Resend this invitation", - inviter: "Send invitations to persons who will - once accepted - gain user access to the application", - overrideSettingsAllowed: "When checked, invitations for this role can override the advanced settings (e.g. email equality, eduID only and the role expiry end date)", - removeUserRole: "Remove all selected user roles", - removeOneUserRole: "Remove this user role", - guestRoleIncludedTooltip: "Do you also want to grant the invitees the user role when they accept the invitation?", - notifyInviterTooltip: "Do you want to receive an email when the invitation is accepted?", - expiredUserRole: "This role will expire soon", + userIcon: "Utilizador {{name}} provisionado em {{createdAt}} com última atividade em {{lastActivity}}", + impersonateIcon: "Personificar utilizador {{name}}", + roleIcon: "Grupo de acesso {{name}} criado em {{createdAt}}", + userRoleIcon: "Perfil de utilizador aceite por {{name}} em {{createdAt}}", + invitationIcon: "Convite para {{email}} enviado em {{createdAt}} com data de expiração {{expiryDate}}", + roleShortName: "O nome curto único do grupo dentro de um provisionamento. É usado para formatar o URN e, portanto, nem todos os caracteres são permitidos.", + organizationGUID: "O identificador organizacional do Manage para delimitar a visibilidade dos grupos do administrador da instituição. Especifique um valor apenas se estiver a criar ou editar este grupo de acesso em nome de um administrador da instituição", + roleIdentityProvider: "O IdP para definir o âmbito da visibilidade dos grupos do administrador da instituição.", + invitationIdentityProvider: "O IdP determina o GUID da organização do novo administrador da instituição quando o convite é aceite", + roleUrn: "O URN do grupo de acesso. É baseado no nome sanitizado e no identificador do grupo. É usado como o identificador global único deste grupo e, portanto, nem todos os caracteres são permitidos.", + manageService: "A aplicação necessária do SURFconext, que pode ter um provisionamento opcional", + defaultExpiryDays: "O número de dias por defeito em que o grupo de acesso expirará, a partir do momento em que um utilizador aceitar o convite para este grupo", + enforceEmailEqualityTooltip: "Quando marcado, o convidado deve aceitar o convite com uma conta com o endereço de e-mail para o qual o convite foi enviado", + eduIDOnlyTooltip: "Quando marcado, os convidados serão obrigados a iniciar sessão com eduID", + requestedAuthnContextTooltip: "O utilizador é forçado a elevar a autenticação ao iniciar sessão com eduID com o ACR especificado", + roleExpiryDateTooltip: "Data de fim do grupo. Após essa data, o utilizador não pertence ao grupo.", + expiryDateTooltip: "A data em que este convite expira", + inviterDisplayName: "O endereço funcional que será usado nos convites do grupo de acesso.

Por defeito, o nome de quem envia o convite é mostrado.", + rolesTooltip: "Selecione todos os grupos de acesso que o convidado receberá após aceitar o convite", + intendedAuthorityTooltip: "O perfil determina os direitos que o convidado receberá ao aceitar o convite", + inviteesTooltip: "Adicione endereços de e-mail separados por vírgula, espaço ou ponto e vírgula ou em linhas separadas. Também pode colar um ficheiro CSV com endereços de e-mail separados por linha.", + removeInvitation: "Eliminar todos os convites selecionados", + removeOneInvitation: "Eliminar este convite", + resendInvitation: "Reenviar todos os convites selecionados", + resendOneInvitation: "Reenviar este convite", + inviter: "Enviar convites para pessoas que — uma vez aceites — terão acesso de utilizador à aplicação", + overrideSettingsAllowed: "Quando marcado, convites para este grupo de acesso podem substituir as configurações avançadas (por exemplo, igualdade de e-mail, apenas eduID e a data de expiração do perfil)", + removeUserRole: "Remover os perfis de utilizador selecionados", + removeOneUserRole: "Remover este perfil de utilizador", + guestRoleIncludedTooltip: "Também deseja conceder aos convidados o perfil de Utilizador quando aceitarem o convite?", + notifyInviterTooltip: "Deseja receber um e-mail quando o convite for aceite?", + expiredUserRole: "Este perfil de utilizador irá expirar em breve", + applicationsTooltip: "Os utilizadores convidados tornar-se-ão gestores de aplicações após aceitarem o convite", }, confirmationDialog: { - title: "Confirm", - error: "Error", - subTitle: "This action requires a confirmation", - subTitleError: "An error has occurred", - confirm: "Confirm", + title: "Confirmar", + error: "Erro", + subTitle: "Esta ação requer uma confirmação", + subTitleError: "Ocorreu um erro", + confirm: "Confirmar", ok: "OK", - cancel: "Cancel", - notAllowed: "Not allowed" + cancel: "Cancelar", + notAllowed: "Não autorizado" }, footer: { - terms: "Terms of Use", + terms: "Termos de Utilização", termsLink: "https://support.surfconext.nl/terms-en", - privacy: "Privacy policy", + privacy: "Política de Privacidade", privacyLink: "https://support.surfconext.nl/privacy-en", surfLink: "https://surf.nl", }, expirations: { - expires: "Expires {{relativeTime}}", - expired: "Expired {{relativeTime}}", - never: "Never expires", + expires: "Expira {{relativeTime}}", + expired: "Expirado {{relativeTime}}", + never: "Nunca expira", activity: { - now: "Just now", - seconds: "Today", - minute: "Today", - minutes: "Today", - hour: "Today", - hours: "Today", - day: "Yesterday", - days: "This week", - week: "This week", - weeks: "This month", - month: "Last month", - months: "%s months ago", - year: "1 year ago", - years: "%s years ago" + now: "Agora mesmo", + seconds: "Hoje", + minute: "Hoje", + minutes: "Hoje", + hour: "Hoje", + hours: "Hoje", + day: "Ontem", + days: "Esta semana", + week: "Esta semana", + weeks: "Este mês", + month: "Mês passado", + months: "há %s meses", + year: "há 1 ano", + years: "há %s anos" }, ago: { - now: "just now", - seconds: "%s seconds ago", - minute: "1 minute ago", - minutes: "%s minutes ago", - hour: "1 hour ago", - hours: "%s hours ago", - day: "1 day ago", - days: "%s days ago", - week: "1 week ago", - weeks: "%s weeks ago", - month: "1 month ago", - months: "%s months ago", - year: "1 year ago", - years: "%s years ago" + now: "agora mesmo", + seconds: "há %s segundos", + minute: "há 1 minuto", + minutes: "há %s minutos", + hour: "há 1 hora", + hours: "há %s horas", + day: "há 1 dia", + days: "há %s dias", + week: "há 1 semana", + weeks: "há %s semanas", + month: "há 1 mês", + months: "há %s meses", + year: "há 1 ano", + years: "há %s anos" }, in: { - now: "right now", - seconds: "after %s seconds", - minute: "after 1 minute", - minutes: "after %s minutes", - hour: "after 1 hour", - hours: "after %s hours", - day: "after 1 day", - days: "after %s days", - week: "after 1 week", - weeks: "after %s weeks", - month: "after 1 month", - months: "after %s months", - year: "after 1 year", - years: "after %s years" + now: "agora mesmo", + seconds: "em %s segundos", + minute: "em 1 minuto", + minutes: "em %s minutos", + hour: "em 1 hora", + hours: "em %s horas", + day: "em 1 dia", + days: "em %s dias", + week: "em 1 semana", + weeks: "em %s semanas", + month: "em 1 mês", + months: "em %s meses", + year: "em 1 ano", + years: "em %s anos" } }, notFound: { - alt: "404 Page not found" + alt: "404 Página não encontrada" }, system: { - trigger: "Trigger", - clear: "Clear", - cronInfo: "Trigger the cron job to cleanup resources like expired user-roles, orphaned users and in-active users", - cronNotificationsInfo: "Trigger the cron job to send notification mails for user-roles that will expire in X days", - noMails: "No notification mails for user-role expirations were send", - performanceSeedInfo: "The performance seed is dummy / generated data to test the performance of the system. It is deleted when you run the tests.", - performanceSeed: "Insert performance seed", - performanceLoadTime: "Inserted following entities in ~{{minutes}} minutes" + trigger: "Executar", + clear: "Limpar", + cronInfo: "Execute o trabalho cron para limpar recursos como perfis de utilizador expirados, utilizadores órfãos e utilizadores inativos", + cronNotificationsInfo: "Execute o trabalho cron para enviar e-mails de notificação para perfis de utilizador que expirarão em X dias", + noMails: "Nenhum e-mail de notificação para expirações de perfis de utilizador foi enviado", + performanceSeedInfo: "A semente de desempenho são dados fictícios/gerados para testar o desempenho do sistema. É eliminada quando executa os testes.", + performanceSeed: "Inserir semente de desempenho", + performanceLoadTime: "Inseriu as seguintes entidades em ~{{minutes}} minutos" }, unknownRoles: { - title: "Roles linked to applications unknown in Manage", - searchPlaceHolder: "Search...", - noRoles: "Yeah, no unknown manage applications" + title: "Grupos de acesso associados a aplicações desconhecidas no Manage", + searchPlaceHolder: "Pesquisar...", + noRoles: "Sim, nenhuma aplicação desconhecida no Manage" }, expiredUserRoles: { - title: "Roles to be expired the next month", - searchPlaceHolder: "Zoek...", - noResults: "Yeah, no user-roles to be expired within one month" + title: "Perfis de utilizador a expirar no próximo mês", + searchPlaceHolder: "Pesquisar...", + noResults: "Sim, nenhum perfil de utilizador a expirar dentro de um mês" }, requestedAuthnContext: { - EduIDLinkedInstitution: "EduID linked institution", - EduIDValidatedName: "EduID validated name", - ValidateNamesExternal: "EduID validated name by an external (non institutional) source", - EduIDRequireStudentAffiliation: "EduID required student affiliation", - TransparentAuthnContext: "Application provides ACR value" + EduIDLinkedInstitution: "Instituição associada no eduID", + EduIDValidatedName: "Nome validado no eduID", + ValidateNamesExternal: "Nome validado no eduID por uma fonte externa (não institucional)", + EduIDRequireStudentAffiliation: "Afiliação de estudante obrigatória no eduID", + TransparentAuthnContext: "A aplicação fornece o valor ACR" + }, + userRoleAudit: { + header: "Registo de auditoria", + info: "Todas as alterações aos grupos de acesso criados pela sua organização", + email: "Utilizador", + roleName: "Grupo de acesso", + action: "Ação", + actions: { + ADD: "Adicionado", + DELETE: "Eliminado", + UPDATE: "Atualizado" + }, + authority: "Perfil", + endDate: "Data de término", + createdAt: "Criado em", + searchPlaceHolder: "Pesquisar histórico de grupos de acesso", + title: "Registo de auditoria dos grupos de acesso", + rolePlaceHolder: "Filtrar por grupo de acesso", + }, + institutionAdmins: { + title: "Administradores institucionais e gestores de aplicações", + searchPlaceHolder: "Pesquisar..." } }