From b08ab8055e8bccc7c5ac4f6398a7795e3bd9fb59 Mon Sep 17 00:00:00 2001 From: Peter Havekes Date: Thu, 8 Oct 2026 07:52:08 +0200 Subject: [PATCH 1/2] Complete Portuguese translations --- client/src/locale/pt.js | 946 +++++++++++++++++++++------------------- 1 file changed, 493 insertions(+), 453 deletions(-) diff --git a/client/src/locale/pt.js b/client/src/locale/pt.js index fe3bb3a6..706d8067 100644 --- a/client/src/locale/pt.js +++ b/client/src/locale/pt.js @@ -1,567 +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: "Escolher o idioma do e-mail de convite", + en: "Inglês", + nl: "Holandês", }, landing: { header: { - title: "Manage access to your applications", - login: "Log in", - sup: "SURFconext Invite is by invitation only.", + title: "Gerir o acesso às suas aplicações", + login: "Entrar", + sup: "O SURFconext Invite é apenas por convite.", }, - works: "How does it work?", - adminFunction: "admin function", + works: "Como funciona?", + adminFunction: "função de administração", 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ção que podem criar papéis para as suas aplicações.

" + + "

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

", true], + ["Papéis", "

Os gestores de papéis convidam colegas para papéis que, por sua vez, podem convidar utilizadores.

", true], + ["Adesão", "

Colaboradores convidados que aceitam o convite obtêm direitos de acesso às aplicações.


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

Os papéis são, na verdade, membros de grupos que podem ser usados em regras de autorização do 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.

" + + "

Precisa de mais informações? Leia mais.

", }, header: { title: "SURFconext Invite", - subTitle: "Everything will be owl right", + subTitle: "Tudo vai correr perfeitamente", links: { - login: "Log in", - system: "System", - switchApp: "Go to {{app}}", - welcome: "Welcome", - access: "Invite", - help: "Help", - profile: "Profile", + login: "Entrar", + system: "Sistema", + switchApp: "Ir para {{app}}", + welcome: "Boas-vindas", + access: "Convite", + help: "Ajuda", + profile: "Perfil", tokens: "Tokens", - logout: "Log out", - audit: "Role history" + logout: "Sair", + audit: "Histórico de papéis", + colleagues: "Papéis da instituição" }, }, 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 papéis & convidadores", + guests: "Utilizadores com este papel", + invitations: "Convites", + roles: "Papéis de acesso", + profile: "Perfil", + userRoles: "Gestores de papéis & convidadores", + guestRoles: "Utilizadores com este papel", cron: "Cron", - invite: "Invite", - tokens: "API tokens", - unknownRoles: "Missing applications", - expiredUserRoles: "User role expirations", - pendingInvitations: "Pending", - allPendingInvitations: "Pending invitations", - acceptedInvitations: "Accepted", + invite: "Convite", + tokens: "Tokens de API", + unknownRoles: "Aplicações em falta", + expiredUserRoles: "Expirações de papéis de utilizador", + pendingInvitations: "Pendentes", + allPendingInvitations: "Convites pendentes", + acceptedInvitations: "Aceites", performanceSeed: "Seed", seed: "Seed", - login: "Login" + login: "Entrar" }, 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: "Deixar de representar este utilizador", + impersonator: "Está a representar {{name}} | {{role}}", + impersonatorTooltip: "Na verdade é {{impersonator}}, mas está a representar {{currentUser}}.", flash: { - startedImpersonation: "You now impersonate {{name}}.", - clearedImpersonation: "Cleared your impersonation. You are you again." + startedImpersonation: "Agora está a representar {{name}}.", + clearedImpersonation: "Representação terminada. De novo é si próprio." }, }, access: { - SUPER_USER: "Superuser", - INSTITUTION_ADMIN: "Institution admin", - MANAGER: "Role manager", - INVITER: "Inviter", - GUEST: "User", - "No member": "No member" + SUPER_USER: "Superutilizador", + INSTITUTION_ADMIN: "Administrador de instituição", + APPLICATION_MANAGER: "Gestor de aplicação", + MANAGER: "Gestor de papéis", + INVITER: "Convidador", + GUEST: "Utilizador", + "No member": "Sem membros" }, 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: "Há mais resultados do que os apresentados, por favor refine a sua pesquisa.", + applicationsSearchPlaceHolder: "Procurar aplicação...", + name_email: "Nome / e-mail", + name: "Nome", + email: "E-mail", + highestAuthority: "Função", + createdAt: "Criado a", + 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: "Papéis", + applications: "Aplicações", + noRolesInfo: "Não tem papéis (o que significa que deve ser superutilizador)", + noRolesInstitutionAdmin: "É administrador de instituição e não tem papéis (mas pode ter acesso a aplicações)", + noRolesInstitutionAdminOther: "{{name}} é administrador de instituição e não tem papéis (mas pode ter acesso a aplicações)", + noRolesNoApplicationsInstitutionAdmin: "É administrador de instituição, mas não tem papéis e aparentemente a sua instituição também não tem acesso a aplicações", + noRolesInfoApplicationManager: "Não tem papéis, mas é gestor de aplicação e tem acesso a aplicações", + noRolesInfoApplicationManagerOther: "{{name}} não tem papéis, mas é gestor de aplicação e tem acesso a aplicações", + guestRoleOnly: "Não é administrador. Está à procura das aplicações a que tem acesso?", + rolesInfo: "Tem os seguintes papéis", + applicationsInfo: "Tem acesso às seguintes aplicações", + noRolesFound: "Nenhum papel encontrado.", + noApplicationsFound: "Nenhuma aplicação encontrada.", + rolesInfoOther: "{{name}} tem os seguintes papéis", + applicationsInfoOther: "{{name}} tem acesso às seguintes aplicações", + landingPage: "Página de acolhimento", + access: "Acesso", + organisation: "Organização", + noResults: "Nenhum utilizador encontrado", + searchPlaceHolder: "Procurar utilizadores...", + authority: "Autoridade", + endDate: "Data de término", + expiryDays: "Dias de expiração", + roleExpiryTooltip: "Ordenar por papéis para ver quais os papéis que expiram mais cedo", + deleteFlash: "O utilizador {{name}} foi removido", + deleteConfirmation: "Tem a certeza absoluta de que quer remover o utilizador {{name}}? Não existe botão de desfazer.", + institutionAdmins: "Os seus colegas administradores de instituição são:", + onlyInstitutionAdmins: "É o único administrador de instituição da sua organização", + removeInstitutionAdminConfirmation: "Tem a certeza de que quer remover os direitos de administração de instituição de {{userName}}", + removeInstitutionAdminFlash: "Os direitos de administração de instituição foram removidos a {{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: "Papel válido por {{days}} dias", + roleInfoNoEndDate: "O papel não tem data de término", + contactAdmin: "Contactar o(s) gestor(es) de papéis", + institutionAdmin: "Administradores de instituição: {{names}}", + noInstitutionAdmin: "Não há administradores de instituição para este papel" }, 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: "Papéis de acesso", + applicationName: "Aplicação", + auditable: "O papel {{name}} foi criado por {{createdBy}} a {{createdAt}}", + roleDetails: "Detalhes do papel", + invitationDetails: "Detalhes do convite", + applicationDetails: "Aplicação(ões) às quais este papel se aplica", + addApplication: "Adicionar aplicação", + multiple: "Várias aplicações", + applicationPlaceholder: "Escolher uma aplicação...", + accessRole: "Nome", + name: "Nome", + namePlaceHolder: "O nome do papel", + shortName: "Nome curto", + organizationGUID: "GUID da organização", + organizationGUIDValue: "GUID da instituição: {{guid}}", + identityProvider: "Provedor de identidade", + identityProviderPlaceholder: "Procurar provedor de identidade...", + landingPage: "(Personalizada) página de acolhimento", + userRoleCount: "# Utilizadores", landingPagePlaceHolder: "https://landingpage.com", - defaultExpiryDays: "Expiry days", - endDate: "End date", + defaultExpiryDays: "Dias de expiração", + 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: "Autoridade", + yourRole: "O seu papel", + description: "Descrição", + descriptionPlaceHolder: "A descrição do papel", + isCrm: "Papel de mijnSURF", + noResults: "Nenhum papel encontrado", + noMember: "Sem membros", + searchPlaceHolder: "Procurar papéis...", + found: "{{count}} {{plural}} encontrados", + singleRole: "papel", + multipleRoles: "papéis", + new: "Adicionar novo papel", + edit: "Editar papel {{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", + advanced: "Definições avançadas", + showAdvancedSettings: "Mostrar definições avançadas de convite", + hideAdvancedSettings: "Ocultar definições avançadas de convite", + override: "Pode a configuração ser substituída?", + manage: "Aplicação", + manageMetaData: "Entidade do SURFconext", 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.", + deleteFlash: "O papel {{name}} foi removido", + deleteConfirmation: "Tem a certeza de que quer remover este papel?", + createFlash: "O papel {{name}} foi criado", + updateFlash: "O papel {{name}} foi atualizado", + unknownInManage: "Desconhecido no Manage", + unknownInManageToolTip: "A aplicação deste papel foi removida da infraestrutura da SURF. Contacte support@surfconext.nl para resolver esta questão.", + unknownInManageDisabled: "A aplicação deste papel foi removida da infraestrutura da SURF. Por isso, não pode convidar novos utilizadores. Contacte support@surfconext.nl para resolver esta questã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 vão perder o acesso:", + userInfo: "{{name}} ({{authority}}), última atividade {{lastActivity}}", + andMore: "E mais {{nbr}}... Veja 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 papel não terão acesso imediato a esta aplicação. Veja a wiki para mais informações", + userRolesPresent: "Não pode remover este papel, porque {{nbr}} utilizador(es) o têm. Tem primeiro de os remover deste papel." }, 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: "Papéis de acesso a esta aplicação ({{nbr}})", + applicationFound: "Aplicações ({{nbr}})", + new: "Novo papel de acesso", + searchPlaceHolder: "Procurar 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", + roles: "Papéis", provisionings: "Provisionings", - accessRole: "Access Role", + accessRole: "Papel de acesso", }, applicationRoles: { - searchPlaceHolder: "Search for Access Roles", - noEntities: "No access roles found", + searchPlaceHolder: "Procurar papéis de acesso", + noEntities: "Nenhum papel 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: "papel de utilizador", + multipleUserRoles: "papéis de utilizador", + searchPlaceHolder: "Procurar utilizadores...", + noResults: "Nenhum papel de utilizador encontrado", + guestRoles: "{{count}} utilizadores", + managerRoles: "{{count}} gestores & convidadores", + notAllowed: "Não pode remover este papel de utilizador por falta de papéis", + updateConfirmation: "Tem a certeza de que quer alterar a data de término do papel {{roleName}} para {{userName}}?", + updateConfirmationRemoveEndDate: "Tem a certeza de que quer remover a data de término do papel {{roleName}} para {{userName}}?", + updateFlash: "A data de término do papel {{roleName}} foi atualizada", + deleteConfirmation: "Tem a certeza de que quer remover este papel destes utilizador(es)?", + deleteOneConfirmation: "Tem a certeza de que quer remover este papel deste utilizador?", + deleteFlash: "O(s) papel(is) de utilizador foi/foram removido(s)", + 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: "Procurar convite...", + noResults: "Nenhum convite encontrado", + inviter: "Convidado por", + status: "Estado", + pending: "pendente", + open: "Aberto", + accepted: "Aceite", + expired: "Expirado", + mine: "Os meus convites abertos", + enforceEmailEquality: "O e-mail tem de corresponder", + eduIDOnly: "Apenas eduID", + requestedAuthnContext: "Valor ACR", + requestedAuthnContextPlaceHolder: "Escolher um valor ACR para stepup do utilizador...", + requestedAuthnContextWarning: "Para impor também o ACR selecionado na(s) aplicação(ões) {{applications}}, " + + "é necessária configuração adicional no Provedor de Identidade eduID. " + + "Contacte support@surfconext.nl para solicitar esta alteração.", + new: "Convidar gestor de papéis ou convidador", + newInvitation: "Convidar convidador", + newInvite: "Novo convite", + newGuest: "Convidar novo utilizador", + invitees: "Convidados", + intendedRoles: "Papéis", + 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 papel para um convite", + requiredApplication: "É necessária pelo menos uma aplicação para um convite de gestor de aplicação", + requiredOrganizationGUID: "Um GUID de organização válido é necessário para um convite de administrador de instituição", + intendedAuthority: "Autoridade", + roles: "Papéis", + inviterRoles: "Selecionar os papéis para o novo convite", + rolesPlaceHolder: "Escolher um ou mais papéis", + rolesPlaceHolderLoading: "Aguarde até todos os papéis estarem carregados...", + applications: "Aplicações", + applicationsPlaceHolder: "Escolher uma ou mais aplicações", + applicationsPlaceHolderLoading: "Aguarde até todas as aplicações estarem carregadas...", + expiryDate: "Válido até", + acceptedAt: "Data de aceitação", + roleExpiryDate: "Data de expiração do papel", + roleExpiryDateQuestion: "Definir uma expiração personalizada do papel", + roleExpiryDateInfo: "Este papel será removido do utilizador {{expiry}}", + roleExpiryDateInfoOn: "Este papel será removido do utilizador a {{date}}", + roleExpiryDateInfoDefault: "Por defeito, este papel é removido de um utilizador após {{days}} dias", + removeRole: "Remover papel", + after: "Após", + on: "Em", + days: "Dias", + customInviterDisplayNameQuestion: "Definir um nome personalizado para o convidador", + inviterDisplayName: "Nome de exibição personalizado do convidador para convites", + inviterDisplayNamePlaceholder: "ex. trabalhar@casa.universidade.pt", + inviterDisplayNameError: "O nome personalizado do convidador é obrigatório, a menos que use o nome padrão do convidador", + customInviterDisplayNameInfoDefault: "Os convites para este papel mostrarão o nome do convidador como remetente", + customInviterDisplayNameInfo: "Os convites para este papel mostrarão um nome / e-mail personalizado como remetente", + expiryDateQuestion: "Definir um período de expiração personalizado do convite", + expiryDateInfo: "Por defeito, um convite é válido por 1 mês", + withinThreeMonths: "Dentro de 1 mês", + createdAt: "Enviado", + message: "Nota pessoal", + messagePlaceholder: "Adicionar uma nota pessoal opcional ao seu convite", + invite: "Enviar convite", + guestRoleIncluded: "Adicionar o papel de utilizador?", + notifyInviter: "Notificar-me quando for aceite?", + invalidEmails: "Endereços de e-mail inválidos removidos: {{emails}}.", + createFlash: "O convite foi enviado", + delete: "Revogar", + resend: "Reenviar", + notAllowed: "Não pode revogar ou reenviar este convite por falta de papéis", + deleteFlash: "O(s) convite(s) foi/foram revogado(s)", + deleteConfirmation: "Tem a certeza de que quer revogar estes convites?", + deleteOneConfirmation: "Tem a certeza de que quer revogar este convite?", + resendConfirmation: "Tem a certeza de que quer reenviar estes convites?", + resendConfirmationOne: "Tem a certeza de que quer reenviar este convite?", + resendFlash: "O(s) convite(s) foi/foram 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 papéis", + to: "Para", + message: "Nota pessoal", + settings: "Definiçõ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: "Meus" } }, forms: { - none: "None", - notApplicable: "N/A", - you: "You", - yes: "Yes", - no: "No", + none: "Nenhum", + notApplicable: "n/a", + you: "Si próprio", + 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 definir uma data fixa", + edit: "Editar", + reset: "Repor", + cancel: "Cancelar", + save: "Gravar", + 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}} é obrigatório", + invalid: "O valor '{{value}}' não é válido para {{attribute}}", + error: "Pode contactar support@surfconext.nl para obter ajuda.

" + + "O número de referência desta 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 a {{createdAt}}", + your: "A sua conta foi criada a {{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 nenhum papel.", + info: "O SURFconext Invite é apenas por convite. Contacte support@surfconext.nl para quaisquer 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 disponibilizou todos os dados pessoais necessários. Falta o seguinte:", + info: "Para mais informações, contacte support@surfconext.nl.", + preLogin: "Ou ", + login: "iniciar sessão", + postLogin: " novamente com uma instituição diferente.", sub: "sub", email: "email", - givenName: "givenName", - familyName: "familyName", + givenName: "nome", + 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: "Seguinte: desfrute do seu novo papel", + expired: "Este convite expirou a {{expiryDate}}", + expiredInfo: "Contacte {{email}} e peça a esta pessoa que lhe envie um novo convite.", + invited: "Foi convidado para ser {{authority}} para {{plural}} {{roles}} por {{inviter}}.", + invitedNoRoles: "Foi convidado por {{inviter}} para ser {{authority}}", + enforceEmailEquality: " Este convite só pode ser aceite por {{email}}.", + role: "papel", + roles: "papéis", 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 papéis.", + infoLogin: "Pode iniciar sessão com a sua conta institucional ou com eduID.", + infoLoginEduIDOnly: "Tem de iniciar sessão com eduID.", + infoLoginAgain: "Para aceitar o convite, precisa de iniciar sessão novamente.", + login: "Entrar", + loginWithSub: "Entrar", + emailMismatch: "O convidador indicou que tem de 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. Inicie sessão novamente com uma conta diferente.", + crmOrganisationMismatch: "Já tem uma associação a uma organização CRM diferente. Inicie sessão novamente com uma conta diferente.

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 educativas da 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 de instituição de {{name}}! Pode começar por criar o seu primeiro papel e, em seguida, convidar gestores de papéis.", + create: "Criar papel 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: "Adicionar token de API", + searchPlaceHolder: "Procurar tokens de API...", + noEntities: "Sem tokens de API", + titleNew: "Criar um token de API para {{institutions}}", + backToOverview: "Voltar a todos os tokens de API", + createdAt: "Criado a", + secretDisclaimer: "Só pode ver este token de API uma vez. Copie-o e guarde-o num local seguro.

Se o token se perder, remova-o e crie um novo.", + secret: "Token de API", + secretValue: "Token com hash unidirecional", + secretTooltip: "O valor a usar no cabeçalho X-API-TOKEN", + description: "Descrição", + superUserToken: "Token de Super Utilizador", + organizationGUID: "GUID da organização", + descriptionPlaceHolder: "Descrição para este token de API", + descriptionTooltip: "Uma descrição que explica o uso deste token de API", + deleteFlash: "O token de API foi removido", + deleteConfirmation: "Tem a certeza de que quer remover este token de API?", + createFlash: "O token de API foi criado", + submit: "Submeter", + required: "A descrição é obrigató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 a {{createdAt}} com última atividade em {{lastActivity}}", + impersonateIcon: "Representar o utilizador {{name}}", + roleIcon: "Papel {{name}} criado a {{createdAt}}", + userRoleIcon: "Papel de utilizador aceite por {{name}} a {{createdAt}}", + invitationIcon: "Convite para {{email}} enviado a {{createdAt}} com data de expiração {{expiryDate}}", + roleShortName: "O nome curto único do papel dentro de um provisioning. É usado para formatar o urn e, por isso, nem todos os caracteres são permitidos.", + organizationGUID: "O identificador organizacional do Manage para limitar a visibilidade dos papéis do administrador de instituição. Só especifique um valor se estiver a criar ou editar este papel em nome de um administrador de instituição", + roleIdentityProvider: "O IdP para limitar a visibilidade dos papéis do administrador de instituição.", + invitationIdentityProvider: "O IdP determina o GUID da organização do novo administrador de instituição quando o convite é aceite", + roleUrn: "O urn do papel. Baseia-se no nome sanitizado e no identificador do papel. É usado como identificador global único deste papel e, por isso, nem todos os caracteres são permitidos.", + manageService: "A aplicação necessária do SURFconext, que pode ter um provisioning opcional", + defaultExpiryDays: "O número padrão de dias em que o papel expira, a partir do momento em que um utilizador aceita o convite para este papel", + enforceEmailEqualityTooltip: "Quando marcado, o convidado tem de aceitar o convite com uma conta com o endereço de e-mail para onde o convite foi enviado", + eduIDOnlyTooltip: "Quando marcado, os convidados têm de iniciar sessão com eduID", + requestedAuthnContextTooltip: "O utilizador será forçado a elevar a autenticação ao iniciar sessão com eduID com o ACR especificado", + roleExpiryDateTooltip: "A data de término deste papel. Após esta data, o papel é removido do utilizador.", + expiryDateTooltip: "A data em que este convite expira", + inviterDisplayName: "O endereço funcional que será usado nos convites do papel.

Por defeito, mostra-se o nome do convidador.", + rolesTooltip: "Selecionar todos os papéis que o convidado obterá após aceitar o convite", + intendedAuthorityTooltip: "A autoridade determina os direitos que o convidado obterá 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 linhas.", + removeInvitation: "Remover todos os convites selecionados", + removeOneInvitation: "Remover este convite", + resendInvitation: "Reenviar todos os convites selecionados", + resendOneInvitation: "Reenviar este convite", + inviter: "Enviar convites a pessoas que – uma vez aceite – obtenham acesso de utilizador à aplicação", + overrideSettingsAllowed: "Quando marcado, os convites para este papel podem substituir as definições avançadas (ex. igualdade de e-mail, apenas eduID e a data de expiração do papel)", + removeUserRole: "Remover todos os papéis de utilizador selecionados", + removeOneUserRole: "Remover este papel de utilizador", + guestRoleIncludedTooltip: "Quer também atribuir o papel de utilizador aos convidados quando aceitarem o convite?", + notifyInviterTooltip: "Quer receber um e-mail quando o convite for aceite?", + expiredUserRole: "Este papel vai expirar em breve", + applicationsTooltip: "Os utilizadores convidados tornar-se-ão gestores de aplicação após terem aceite", }, 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 confirmação", + subTitleError: "Ocorreu um erro", + confirm: "Confirmar", ok: "OK", - cancel: "Cancel", - notAllowed: "Not allowed" + cancel: "Cancelar", + notAllowed: "Não permitido" }, 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: "Não 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", + seconds: "daqui a %s segundos", + minute: "daqui a 1 minuto", + minutes: "daqui a %s minutos", + hour: "daqui a 1 hora", + hours: "daqui a %s horas", + day: "daqui a 1 dia", + days: "daqui a %s dias", + week: "daqui a 1 semana", + weeks: "daqui a %s semanas", + month: "daqui a 1 mês", + months: "daqui a %s meses", + year: "daqui a 1 ano", + years: "daqui a %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: "Disparar", + clear: "Limpar", + cronInfo: "Disparar o trabalho cron para limpar recursos como papéis de utilizador expirados, utilizadores órfãos e utilizadores inativos", + cronNotificationsInfo: "Disparar o trabalho cron para enviar e-mails de notificação para papéis de utilizador que expiram em X dias", + noMails: "Não foram enviados e-mails de notificação para expirações de papéis de utilizador", + performanceSeedInfo: "O seed de performance são dados falsos / gerados para testar o desempenho do sistema. É removido quando executa os testes.", + performanceSeed: "Inserir seed de performance", + performanceLoadTime: "Inseridos os seguintes entes em ~{{minutes}} minutos" }, unknownRoles: { - title: "Roles linked to applications unknown in Manage", - searchPlaceHolder: "Search...", - noRoles: "Yeah, no unknown manage applications" + title: "Papéis associados a aplicações desconhecidas no Manage", + searchPlaceHolder: "Procurar...", + 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: "Papéis por expirar no próximo mês", + searchPlaceHolder: "Procurar...", + noResults: "Sim, não há papéis de utilizador por 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 ligada ao eduID", + EduIDValidatedName: "Nome validado pelo eduID", + ValidateNamesExternal: "Nome validado pelo eduID por uma fonte externa (não institucional)", + EduIDRequireStudentAffiliation: "eduID requer afiliação de estudante", + TransparentAuthnContext: "A aplicação fornece o valor ACR" + }, + userRoleAudit: { + header: "Registo de auditoria", + info: "Todas as alterações a papéis criados pela sua organização", + email: "Utilizador", + roleName: "Papel", + action: "Ação", + actions: { + ADD: "Adicionado", + DELETE: "Removido", + UPDATE: "Atualizado" + }, + authority: "Autoridade", + endDate: "Data de término", + createdAt: "Criado", + searchPlaceHolder: "Procurar histórico de papéis", + title: "O registo de auditoria de papéis", + rolePlaceHolder: "Filtrar por papel", + }, + institutionAdmins: { + title: "Administradores de instituição e gestores de aplicação", + searchPlaceHolder: "Procurar..." } } -export default pt; +export default pt; \ No newline at end of file From f39bf274bf3286fdf3b003b11f5cd8d0a04a800c Mon Sep 17 00:00:00 2001 From: Filipe Santana Date: Thu, 8 Oct 2026 13:46:28 +0100 Subject: [PATCH 2/2] Update translate PT --- client/src/locale/pt.js | 591 ++++++++++++++++++++-------------------- 1 file changed, 296 insertions(+), 295 deletions(-) diff --git a/client/src/locale/pt.js b/client/src/locale/pt.js index 706d8067..59d6e27b 100644 --- a/client/src/locale/pt.js +++ b/client/src/locale/pt.js @@ -4,44 +4,45 @@ const pt = { select_locale: "Mudar o idioma para Português", languages: { language: "Idioma", - languageTooltip: "Escolher o idioma do e-mail de convite", + languageTooltip: "Escolha o idioma do e-mail de convite", en: "Inglês", nl: "Holandês", + pt: "Português", }, landing: { header: { - title: "Gerir o acesso às suas aplicações", - login: "Entrar", - sup: "O SURFconext Invite é apenas por convite.", + title: "Gerir acesso às suas aplicações", + login: "Iniciar sessão", + sup: "O SURFconext Invite funciona apenas por convite.", }, works: "Como funciona?", - adminFunction: "função de administração", + adminFunction: "perfil de administrador", info: [ //Arrays of titles and info blocks and if a function is an admin function - ["Convites", "

A SURF convida administradores de instituição que podem criar papéis para as suas aplicações.

" + + ["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], - ["Papéis", "

Os gestores de papéis convidam colegas para papéis que, por sua vez, podem convidar utilizadores.

", true], - ["Adesão", "

Colaboradores convidados que aceitam o convite obtêm direitos de acesso às aplicações.


", false], - ["Grupos", "

Os papéis são, na verdade, membros de grupos que podem ser usados em regras de autorização do SURFconext, ou provisionados como atributos ou em APIs SCIM externas.

", false] + ["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: "

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

" + - "

Precisa de mais informações? Leia mais.

", + "

Quer saber mais? Saiba mais.

", }, header: { title: "SURFconext Invite", - subTitle: "Tudo vai correr perfeitamente", + subTitle: "Gerir acesso às suas aplicações", links: { - login: "Entrar", + login: "Iniciar sessão", system: "Sistema", switchApp: "Ir para {{app}}", - welcome: "Boas-vindas", + welcome: "Bem-vindo", access: "Convite", help: "Ajuda", - profile: "Perfil", + profile: "O meu perfil", tokens: "Tokens", - logout: "Sair", - audit: "Histórico de papéis", - colleagues: "Papéis da instituição" + logout: "Terminar sessão", + audit: "Histórico do grupo", + colleagues: "Funções institucionais" }, }, tabs: { @@ -49,58 +50,58 @@ const pt = { applications: "Aplicações", users: "Utilizadores", applicationUsers: "Utilizadores", - maintainers: "Gestores de papéis & convidadores", - guests: "Utilizadores com este papel", + maintainers: "Gestores de grupos e convites", + guests: "Utilizadores com este acesso", invitations: "Convites", - roles: "Papéis de acesso", - profile: "Perfil", - userRoles: "Gestores de papéis & convidadores", - guestRoles: "Utilizadores com este papel", + roles: "Grupos de acesso", + profile: "O meu perfil", + userRoles: "Gestores de grupos e convites", + guestRoles: "Utilizadores com este acesso", cron: "Cron", - invite: "Convite", + invite: "Convidar", tokens: "Tokens de API", unknownRoles: "Aplicações em falta", - expiredUserRoles: "Expirações de papéis de utilizador", + expiredUserRoles: "Expiração de acesso de utilizadores", pendingInvitations: "Pendentes", allPendingInvitations: "Convites pendentes", acceptedInvitations: "Aceites", - performanceSeed: "Seed", - seed: "Seed", - login: "Entrar" + performanceSeed: "Semente", + seed: "Semente", + login: "Iniciar sessão" }, home: { access: "SURFconext Invite", }, impersonate: { - exit: "Deixar de representar este utilizador", - impersonator: "Está a representar {{name}} | {{role}}", - impersonatorTooltip: "Na verdade é {{impersonator}}, mas está a representar {{currentUser}}.", + exit: "Parar de personificar", + impersonator: "Está a personificar {{name}} | {{role}}", + impersonatorTooltip: "É realmente {{impersonator}}, mas está a personificar {{currentUser}}.", flash: { - startedImpersonation: "Agora está a representar {{name}}.", - clearedImpersonation: "Representação terminada. De novo é si próprio." + startedImpersonation: "Agora está a personificar {{name}}.", + clearedImpersonation: "Parou de personificar. Voltou a ser você mesmo." }, }, access: { SUPER_USER: "Superutilizador", - INSTITUTION_ADMIN: "Administrador de instituição", - APPLICATION_MANAGER: "Gestor de aplicação", - MANAGER: "Gestor de papéis", - INVITER: "Convidador", + INSTITUTION_ADMIN: "Admin. Institucional", + APPLICATION_MANAGER: "Gestor de aplicações", + MANAGER: "Gestor de Grupo", + INVITER: "Gestor de Convites", GUEST: "Utilizador", - "No member": "Sem membros" + "No member": "Não é membro" }, users: { found: "{{count}} {{plural}} encontrados", - moreResults: "Há mais resultados do que os apresentados, por favor refine a sua pesquisa.", - applicationsSearchPlaceHolder: "Procurar aplicação...", + 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: "Função", - createdAt: "Criado a", + highestAuthority: "Perfil de acesso", + createdAt: "Criado", schacHomeOrganization: "Instituição", lastActivity: "Última atividade", - organizationGUID: "GUID da organização", + organizationGUID: "GUID da Organização", eduPersonPrincipalName: "EPPN", sub: "Sub", singleUser: "utilizador", @@ -108,111 +109,111 @@ const pt = { noEntities: "Nenhum utilizador encontrado", new: "Novo convite", title: "Utilizadores", - roles: "Papéis", + roles: "Grupos de acesso", applications: "Aplicações", - noRolesInfo: "Não tem papéis (o que significa que deve ser superutilizador)", - noRolesInstitutionAdmin: "É administrador de instituição e não tem papéis (mas pode ter acesso a aplicações)", - noRolesInstitutionAdminOther: "{{name}} é administrador de instituição e não tem papéis (mas pode ter acesso a aplicações)", - noRolesNoApplicationsInstitutionAdmin: "É administrador de instituição, mas não tem papéis e aparentemente a sua instituição também não tem acesso a aplicações", - noRolesInfoApplicationManager: "Não tem papéis, mas é gestor de aplicação e tem acesso a aplicações", - noRolesInfoApplicationManagerOther: "{{name}} não tem papéis, mas é gestor de aplicação e tem acesso a aplicações", - guestRoleOnly: "Não é administrador. Está à procura das aplicações a que tem acesso?", - rolesInfo: "Tem os seguintes papéis", + 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 papel encontrado.", + noRolesFound: "Nenhum grupo de acesso encontrado.", noApplicationsFound: "Nenhuma aplicação encontrada.", - rolesInfoOther: "{{name}} tem os seguintes papéis", + rolesInfoOther: "{{name}} tem os seguintes grupos de acesso", applicationsInfoOther: "{{name}} tem acesso às seguintes aplicações", - landingPage: "Página de acolhimento", + landingPage: "Página inicial", access: "Acesso", organisation: "Organização", noResults: "Nenhum utilizador encontrado", - searchPlaceHolder: "Procurar utilizadores...", - authority: "Autoridade", + searchPlaceHolder: "Pesquisar utilizadores...", + authority: "Perfil", endDate: "Data de término", expiryDays: "Dias de expiração", - roleExpiryTooltip: "Ordenar por papéis para ver quais os papéis que expiram mais cedo", - deleteFlash: "O utilizador {{name}} foi removido", - deleteConfirmation: "Tem a certeza absoluta de que quer remover o utilizador {{name}}? Não existe botão de desfazer.", - institutionAdmins: "Os seus colegas administradores de instituição são:", - onlyInstitutionAdmins: "É o único administrador de instituição da sua organização", - removeInstitutionAdminConfirmation: "Tem a certeza de que quer remover os direitos de administração de instituição de {{userName}}", - removeInstitutionAdminFlash: "Os direitos de administração de instituição foram removidos a {{userName}}" + 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: "Copiar URN", userInfo: "{{nbr}} membro(s) & expira {{period}}", - roleInfo: "Papel válido por {{days}} dias", - roleInfoNoEndDate: "O papel não tem data de término", - contactAdmin: "Contactar o(s) gestor(es) de papéis", - institutionAdmin: "Administradores de instituição: {{names}}", - noInstitutionAdmin: "Não há administradores de instituição para este papel" + 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: "Papéis de acesso", + title: "Grupos de Acesso", applicationName: "Aplicação", - auditable: "O papel {{name}} foi criado por {{createdBy}} a {{createdAt}}", - roleDetails: "Detalhes do papel", + auditable: "O grupo de acesso {{name}} foi criado por {{createdBy}} em {{createdAt}}", + roleDetails: "Detalhes do grupo de acesso", invitationDetails: "Detalhes do convite", - applicationDetails: "Aplicação(ões) às quais este papel se aplica", + applicationDetails: "Aplicações a que este grupo de acesso se aplica", addApplication: "Adicionar aplicação", - multiple: "Várias aplicações", - applicationPlaceholder: "Escolher uma aplicação...", + multiple: "Múltiplas aplicações", + applicationPlaceholder: "Escolha uma aplicação...", accessRole: "Nome", name: "Nome", - namePlaceHolder: "O nome do papel", - shortName: "Nome curto", - organizationGUID: "GUID da organização", - organizationGUIDValue: "GUID da instituição: {{guid}}", - identityProvider: "Provedor de identidade", - identityProviderPlaceholder: "Procurar provedor de identidade...", - landingPage: "(Personalizada) página de acolhimento", + 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: "Dias de expiração", + defaultExpiryDays: "Dias de expiração (por defeito)", endDate: "Data de término", noEndDate: "-", - authority: "Autoridade", - yourRole: "O seu papel", + authority: "Perfil", + yourRole: "O seu perfil", description: "Descrição", - descriptionPlaceHolder: "A descrição do papel", - isCrm: "Papel de mijnSURF", - noResults: "Nenhum papel encontrado", - noMember: "Sem membros", - searchPlaceHolder: "Procurar papéis...", + 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: "papel", - multipleRoles: "papéis", - new: "Adicionar novo papel", - edit: "Editar papel {{name}}", + singleRole: "grupo de acesso", + multipleRoles: "grupos de acesso", + new: "Novo grupo de acesso", + edit: "Editar grupo de acesso {{name}}", urn: "URN", - advanced: "Definições avançadas", - showAdvancedSettings: "Mostrar definições avançadas de convite", - hideAdvancedSettings: "Ocultar definições avançadas de convite", - override: "Pode a configuração ser substituída?", + 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: "Provisioning", - deleteFlash: "O papel {{name}} foi removido", - deleteConfirmation: "Tem a certeza de que quer remover este papel?", - createFlash: "O papel {{name}} foi criado", - updateFlash: "O papel {{name}} foi atualizado", + 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 deste papel foi removida da infraestrutura da SURF. Contacte support@surfconext.nl para resolver esta questão.", - unknownInManageDisabled: "A aplicação deste papel foi removida da infraestrutura da SURF. Por isso, não pode convidar novos utilizadores. Contacte support@surfconext.nl para resolver esta questão.", + 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: "Os seguintes utilizadores vão perder o acesso:", + info: "Os seguintes utilizadores perderão o acesso:", userInfo: "{{name}} ({{authority}}), última atividade {{lastActivity}}", - andMore: "E mais {{nbr}}... Veja a lista de utilizadores atuais para mais detalhes." + andMore: "E mais {{nbr}}... Verifique a lista de utilizadores atuais para mais detalhes." }, - noProvisioning: "Os utilizadores adicionados a este papel não terão acesso imediato a esta aplicação. Veja a wiki para mais informações", - userRolesPresent: "Não pode remover este papel, porque {{nbr}} utilizador(es) o têm. Tem primeiro de os remover deste papel." + 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: "Papéis de acesso a esta aplicação ({{nbr}})", + title: "Grupos de acesso para esta aplicação ({{nbr}})", applicationFound: "Aplicações ({{nbr}})", - new: "Novo papel de acesso", - searchPlaceHolder: "Procurar aplicações", + new: "Novo grupo de acesso", + searchPlaceHolder: "Pesquisar aplicações...", noResults: "Nenhuma aplicação encontrada...", name: "Nome da aplicação", types: { @@ -222,35 +223,35 @@ const pt = { type: "Tipo", organization: "Organização", url: "URL", - roles: "Papéis", - provisionings: "Provisionings", - accessRole: "Papel de acesso", + roles: "Grupos de acesso", + provisionings: "Provisionamentos", + accessRole: "Grupo de acesso", }, applicationRoles: { - searchPlaceHolder: "Procurar papéis de acesso", - noEntities: "Nenhum papel de acesso encontrado", + searchPlaceHolder: "Pesquisar grupos de acesso", + noEntities: "Nenhum grupo de acesso encontrado", }, userRoles: { found: "{{count}} {{plural}} encontrados", - singleUserRole: "papel de utilizador", - multipleUserRoles: "papéis de utilizador", - searchPlaceHolder: "Procurar utilizadores...", - noResults: "Nenhum papel de utilizador encontrado", + 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 & convidadores", - notAllowed: "Não pode remover este papel de utilizador por falta de papéis", - updateConfirmation: "Tem a certeza de que quer alterar a data de término do papel {{roleName}} para {{userName}}?", - updateConfirmationRemoveEndDate: "Tem a certeza de que quer remover a data de término do papel {{roleName}} para {{userName}}?", - updateFlash: "A data de término do papel {{roleName}} foi atualizada", - deleteConfirmation: "Tem a certeza de que quer remover este papel destes utilizador(es)?", - deleteOneConfirmation: "Tem a certeza de que quer remover este papel deste utilizador?", - deleteFlash: "O(s) papel(is) de utilizador foi/foram removido(s)", + 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: "Convites", - searchPlaceHolder: "Procurar convite...", + searchPlaceHolder: "Pesquisar convite...", noResults: "Nenhum convite encontrado", inviter: "Convidado por", status: "Estado", @@ -258,158 +259,158 @@ const pt = { open: "Aberto", accepted: "Aceite", expired: "Expirado", - mine: "Os meus convites abertos", + mine: "Os meus convites em aberto", enforceEmailEquality: "O e-mail tem de corresponder", eduIDOnly: "Apenas eduID", requestedAuthnContext: "Valor ACR", - requestedAuthnContextPlaceHolder: "Escolher um valor ACR para stepup do utilizador...", - requestedAuthnContextWarning: "Para impor também o ACR selecionado na(s) aplicação(ões) {{applications}}, " + - "é necessária configuração adicional no Provedor de Identidade eduID. " + - "Contacte support@surfconext.nl para solicitar esta alteração.", - new: "Convidar gestor de papéis ou convidador", - newInvitation: "Convidar convidador", + 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: "Papéis", + 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 papel para um convite", - requiredApplication: "É necessária pelo menos uma aplicação para um convite de gestor de aplicação", - requiredOrganizationGUID: "Um GUID de organização válido é necessário para um convite de administrador de instituição", - intendedAuthority: "Autoridade", - roles: "Papéis", - inviterRoles: "Selecionar os papéis para o novo convite", - rolesPlaceHolder: "Escolher um ou mais papéis", - rolesPlaceHolderLoading: "Aguarde até todos os papéis estarem carregados...", + 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: "Escolher uma ou mais aplicações", - applicationsPlaceHolderLoading: "Aguarde até todas as aplicações estarem carregadas...", + 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 papel", - roleExpiryDateQuestion: "Definir uma expiração personalizada do papel", - roleExpiryDateInfo: "Este papel será removido do utilizador {{expiry}}", - roleExpiryDateInfoOn: "Este papel será removido do utilizador a {{date}}", - roleExpiryDateInfoDefault: "Por defeito, este papel é removido de um utilizador após {{days}} dias", - removeRole: "Remover papel", + 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 personalizado para o convidador", - inviterDisplayName: "Nome de exibição personalizado do convidador para convites", - inviterDisplayNamePlaceholder: "ex. trabalhar@casa.universidade.pt", - inviterDisplayNameError: "O nome personalizado do convidador é obrigatório, a menos que use o nome padrão do convidador", - customInviterDisplayNameInfoDefault: "Os convites para este papel mostrarão o nome do convidador como remetente", - customInviterDisplayNameInfo: "Os convites para este papel mostrarão um nome / e-mail personalizado como remetente", - expiryDateQuestion: "Definir um período de expiração personalizado do convite", + 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: "Adicionar uma nota pessoal opcional ao seu convite", + messagePlaceholder: "Adicione uma nota pessoal opcional ao seu convite", invite: "Enviar convite", - guestRoleIncluded: "Adicionar o papel de utilizador?", - notifyInviter: "Notificar-me quando for aceite?", + 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: "O convite foi enviado", + createFlash: "Convite enviado", delete: "Revogar", resend: "Reenviar", - notAllowed: "Não pode revogar ou reenviar este convite por falta de papéis", - deleteFlash: "O(s) convite(s) foi/foram revogado(s)", - deleteConfirmation: "Tem a certeza de que quer revogar estes convites?", - deleteOneConfirmation: "Tem a certeza de que quer revogar este convite?", - resendConfirmation: "Tem a certeza de que quer reenviar estes convites?", - resendConfirmationOne: "Tem a certeza de que quer reenviar este convite?", - resendFlash: "O(s) convite(s) foi/foram reenviado(s)", + 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: "Enviar novo convite", - roles: "Para os seguintes papéis", + roles: "Para os seguintes grupos de acesso", to: "Para", message: "Nota pessoal", - settings: "Definições avançadas de convite" + settings: "Configurações avançadas de convite" }, statuses: { all: "Todos ({{nbr}})", open: "Aberto", accepted: "Aceite", expired: "Expirado", - mine: "Meus" + mine: "Os meus" } }, forms: { none: "Nenhum", notApplicable: "n/a", - you: "Si próprio", + you: "Você", yes: "Sim", no: "Não", ok: "OK", or: "ou ", - fixed: "ou definir uma data fixa", + fixed: "ou defina uma data fixa", edit: "Editar", reset: "Repor", cancel: "Cancelar", - save: "Gravar", + 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}} é obrigatório", - invalid: "O valor '{{value}}' não é válido para {{attribute}}", + 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 desta exceção é {{reference}}." + "O número de referência para esta exceção é {{reference}}." }, profile: { - info: "A conta de {{name}} foi criada a {{createdAt}}", - your: "A sua conta foi criada a {{createdAt}}" + info: "A conta de {{name}} foi criada em {{createdAt}}", + your: "A sua conta foi criada em {{createdAt}}" }, inviteOnly: { welcome: "Bem-vindo ao SURFconext Invite", - roles: "Não tem nenhum papel.", - info: "O SURFconext Invite é apenas por convite. Contacte support@surfconext.nl para quaisquer questões.", + 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: "Bem-vindo ao SURFconext Invite", - attributes: "A sua instituição não disponibilizou todos os dados pessoais necessários. Falta o seguinte:", - info: "Para mais informações, contacte support@surfconext.nl.", + 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: "iniciar sessão", + login: "inicie sessão", postLogin: " novamente com uma instituição diferente.", sub: "sub", - email: "email", - givenName: "nome", + email: "e-mail", + givenName: "nome próprio", familyName: "apelido", schacHomeOrganization: "schacHomeOrganization" }, invitationAccept: { hi: "Olá{{name}},", - nextStep: "Seguinte: desfrute do seu novo papel", - expired: "Este convite expirou a {{expiryDate}}", - expiredInfo: "Contacte {{email}} e peça a esta pessoa que lhe envie um novo convite.", - invited: "Foi convidado para ser {{authority}} para {{plural}} {{roles}} por {{inviter}}.", - invitedNoRoles: "Foi convidado por {{inviter}} para ser {{authority}}", + 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: "papel", - roles: "papéis", + role: "grupo", + roles: "grupos", progress: "1", - info: "O SURFconext Invite fornece acesso a aplicações com base nos seus papéis.", - infoLogin: "Pode iniciar sessão com a sua conta institucional ou com eduID.", - infoLoginEduIDOnly: "Tem de iniciar sessão com eduID.", - infoLoginAgain: "Para aceitar o convite, precisa de iniciar sessão novamente.", - login: "Entrar", - loginWithSub: "Entrar", - emailMismatch: "O convidador indicou que tem de 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. Inicie sessão novamente com uma conta diferente.", - crmOrganisationMismatch: "Já tem uma associação a uma organização CRM diferente. Inicie sessão novamente com uma conta diferente.

Mensagem do servidor: {{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: "Bem-vindo, {{name}}", - info: "Gerir quem tem acesso às aplicações educativas da sua instituição.", + 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", @@ -417,78 +418,78 @@ const pt = { history: "Histórico de convites" }, institutionAdmin: { - welcome: "Bem-vindo administrador de instituição de {{name}}! Pode começar por criar o seu primeiro papel e, em seguida, convidar gestores de papéis.", - create: "Criar papel de acesso" + 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: "Tokens de API", - new: "Adicionar token de API", - searchPlaceHolder: "Procurar tokens de API...", - noEntities: "Sem 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 a", - secretDisclaimer: "Só pode ver este token de API uma vez. Copie-o e guarde-o num local seguro.

Se o token se perder, remova-o e crie um novo.", + 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 usar no cabeçalho X-API-TOKEN", + secretTooltip: "O valor a ser usado no cabeçalho X-API-TOKEN", description: "Descrição", - superUserToken: "Token de Super Utilizador", - organizationGUID: "GUID da organização", + superUserToken: "Token de Superutilizador", + organizationGUID: "GUID da Organização", descriptionPlaceHolder: "Descrição para este token de API", - descriptionTooltip: "Uma descrição que explica o uso deste token de API", - deleteFlash: "O token de API foi removido", - deleteConfirmation: "Tem a certeza de que quer remover 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 é obrigatória para um token de API", + required: "A descrição é necessária para um token de API", userTokens: "Os seus tokens de API pessoais", owner: "Proprietário" }, tooltips: { - userIcon: "Utilizador {{name}} provisionado a {{createdAt}} com última atividade em {{lastActivity}}", - impersonateIcon: "Representar o utilizador {{name}}", - roleIcon: "Papel {{name}} criado a {{createdAt}}", - userRoleIcon: "Papel de utilizador aceite por {{name}} a {{createdAt}}", - invitationIcon: "Convite para {{email}} enviado a {{createdAt}} com data de expiração {{expiryDate}}", - roleShortName: "O nome curto único do papel dentro de um provisioning. É usado para formatar o urn e, por isso, nem todos os caracteres são permitidos.", - organizationGUID: "O identificador organizacional do Manage para limitar a visibilidade dos papéis do administrador de instituição. Só especifique um valor se estiver a criar ou editar este papel em nome de um administrador de instituição", - roleIdentityProvider: "O IdP para limitar a visibilidade dos papéis do administrador de instituição.", - invitationIdentityProvider: "O IdP determina o GUID da organização do novo administrador de instituição quando o convite é aceite", - roleUrn: "O urn do papel. Baseia-se no nome sanitizado e no identificador do papel. É usado como identificador global único deste papel e, por isso, nem todos os caracteres são permitidos.", - manageService: "A aplicação necessária do SURFconext, que pode ter um provisioning opcional", - defaultExpiryDays: "O número padrão de dias em que o papel expira, a partir do momento em que um utilizador aceita o convite para este papel", - enforceEmailEqualityTooltip: "Quando marcado, o convidado tem de aceitar o convite com uma conta com o endereço de e-mail para onde o convite foi enviado", - eduIDOnlyTooltip: "Quando marcado, os convidados têm de iniciar sessão com eduID", - requestedAuthnContextTooltip: "O utilizador será forçado a elevar a autenticação ao iniciar sessão com eduID com o ACR especificado", - roleExpiryDateTooltip: "A data de término deste papel. Após esta data, o papel é removido do utilizador.", + 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 papel.

Por defeito, mostra-se o nome do convidador.", - rolesTooltip: "Selecionar todos os papéis que o convidado obterá após aceitar o convite", - intendedAuthorityTooltip: "A autoridade determina os direitos que o convidado obterá 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 linhas.", - removeInvitation: "Remover todos os convites selecionados", - removeOneInvitation: "Remover este convite", + 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 a pessoas que – uma vez aceite – obtenham acesso de utilizador à aplicação", - overrideSettingsAllowed: "Quando marcado, os convites para este papel podem substituir as definições avançadas (ex. igualdade de e-mail, apenas eduID e a data de expiração do papel)", - removeUserRole: "Remover todos os papéis de utilizador selecionados", - removeOneUserRole: "Remover este papel de utilizador", - guestRoleIncludedTooltip: "Quer também atribuir o papel de utilizador aos convidados quando aceitarem o convite?", - notifyInviterTooltip: "Quer receber um e-mail quando o convite for aceite?", - expiredUserRole: "Este papel vai expirar em breve", - applicationsTooltip: "Os utilizadores convidados tornar-se-ão gestores de aplicação após terem aceite", + 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: "Confirmar", error: "Erro", - subTitle: "Esta ação requer confirmação", + subTitle: "Esta ação requer uma confirmação", subTitleError: "Ocorreu um erro", confirm: "Confirmar", ok: "OK", cancel: "Cancelar", - notAllowed: "Não permitido" + notAllowed: "Não autorizado" }, footer: { terms: "Termos de Utilização", @@ -500,7 +501,7 @@ const pt = { expirations: { expires: "Expira {{relativeTime}}", expired: "Expirado {{relativeTime}}", - never: "Não expira", + never: "Nunca expira", activity: { now: "Agora mesmo", seconds: "Hoje", @@ -534,74 +535,74 @@ const pt = { years: "há %s anos" }, in: { - now: "agora", - seconds: "daqui a %s segundos", - minute: "daqui a 1 minuto", - minutes: "daqui a %s minutos", - hour: "daqui a 1 hora", - hours: "daqui a %s horas", - day: "daqui a 1 dia", - days: "daqui a %s dias", - week: "daqui a 1 semana", - weeks: "daqui a %s semanas", - month: "daqui a 1 mês", - months: "daqui a %s meses", - year: "daqui a 1 ano", - years: "daqui a %s anos" + 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 Página não encontrada" }, system: { - trigger: "Disparar", + trigger: "Executar", clear: "Limpar", - cronInfo: "Disparar o trabalho cron para limpar recursos como papéis de utilizador expirados, utilizadores órfãos e utilizadores inativos", - cronNotificationsInfo: "Disparar o trabalho cron para enviar e-mails de notificação para papéis de utilizador que expiram em X dias", - noMails: "Não foram enviados e-mails de notificação para expirações de papéis de utilizador", - performanceSeedInfo: "O seed de performance são dados falsos / gerados para testar o desempenho do sistema. É removido quando executa os testes.", - performanceSeed: "Inserir seed de performance", - performanceLoadTime: "Inseridos os seguintes entes em ~{{minutes}} minutos" + 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: "Papéis associados a aplicações desconhecidas no Manage", - searchPlaceHolder: "Procurar...", + title: "Grupos de acesso associados a aplicações desconhecidas no Manage", + searchPlaceHolder: "Pesquisar...", noRoles: "Sim, nenhuma aplicação desconhecida no Manage" }, expiredUserRoles: { - title: "Papéis por expirar no próximo mês", - searchPlaceHolder: "Procurar...", - noResults: "Sim, não há papéis de utilizador por expirar dentro de um mês" + 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: "Instituição ligada ao eduID", - EduIDValidatedName: "Nome validado pelo eduID", - ValidateNamesExternal: "Nome validado pelo eduID por uma fonte externa (não institucional)", - EduIDRequireStudentAffiliation: "eduID requer afiliação de estudante", + 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 a papéis criados pela sua organização", + info: "Todas as alterações aos grupos de acesso criados pela sua organização", email: "Utilizador", - roleName: "Papel", + roleName: "Grupo de acesso", action: "Ação", actions: { ADD: "Adicionado", - DELETE: "Removido", + DELETE: "Eliminado", UPDATE: "Atualizado" }, - authority: "Autoridade", + authority: "Perfil", endDate: "Data de término", - createdAt: "Criado", - searchPlaceHolder: "Procurar histórico de papéis", - title: "O registo de auditoria de papéis", - rolePlaceHolder: "Filtrar por papel", + 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 de instituição e gestores de aplicação", - searchPlaceHolder: "Procurar..." + title: "Administradores institucionais e gestores de aplicações", + searchPlaceHolder: "Pesquisar..." } } -export default pt; \ No newline at end of file +export default pt;