Skip to content

chore(localizations): Added missing pt-BR translations #6503

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Aug 13, 2025
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/forty-bottles-accept.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@clerk/localizations': patch
---

added missing ptBR translations
161 changes: 93 additions & 68 deletions packages/localizations/src/pt-BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,37 +14,60 @@ import type { LocalizationResource } from '@clerk/types';

export const ptBR: LocalizationResource = {
locale: 'pt-BR',
taskChooseOrganization: {
signOut: {
actionLink: 'Sair',
actionText: 'Conectado como {{identifier}}',
},
createOrganization: {
title: 'Configure sua conta',
subtitle: 'Conte-nos um pouco sobre sua organização',
formButtonSubmit: 'Criar nova organização',
formButtonReset: 'Cancelar',
},
chooseOrganization: {
title: 'Escolha uma organização',
subtitle: 'Junte-se a uma organização existente ou crie uma nova',
suggestionsAcceptedLabel: 'Aprovação pendente',
action__createOrganization: 'Criar nova organização',
action__suggestionsAccept: 'Solicitar participação',
action__invitationAccept: 'Participar',
},
},
apiKeys: {
action__add: undefined,
action__search: undefined,
createdAndExpirationStatus__expiresOn: undefined,
createdAndExpirationStatus__never: undefined,
detailsTitle__emptyRow: undefined,
formButtonPrimary__add: undefined,
formFieldCaption__expiration__expiresOn: undefined,
formFieldCaption__expiration__never: undefined,
formFieldOption__expiration__180d: undefined,
formFieldOption__expiration__1d: undefined,
formFieldOption__expiration__1y: undefined,
formFieldOption__expiration__30d: undefined,
formFieldOption__expiration__60d: undefined,
formFieldOption__expiration__7d: undefined,
formFieldOption__expiration__90d: undefined,
formFieldOption__expiration__never: undefined,
formHint: undefined,
formTitle: undefined,
lastUsed__days: undefined,
lastUsed__hours: undefined,
lastUsed__minutes: undefined,
lastUsed__months: undefined,
lastUsed__seconds: undefined,
lastUsed__years: undefined,
menuAction__revoke: undefined,
action__add: 'Adicionar nova chave',
action__search: 'Pesquisar chaves',
createdAndExpirationStatus__expiresOn:
"Criada {{ createdDate | shortDate('pt-BR') }} • Expira {{ expiresDate | longDate('pt-BR') }}",
createdAndExpirationStatus__never: "Criada {{ createdDate | shortDate('pt-BR') }} • Nunca expira",
detailsTitle__emptyRow: 'Nenhuma chave de API encontrada',
formButtonPrimary__add: 'Criar chave',
formFieldCaption__expiration__expiresOn: 'Expira em {{ date }}',
formFieldCaption__expiration__never: 'Esta chave nunca expirará',
formFieldOption__expiration__180d: '180 Dias',
formFieldOption__expiration__1d: '1 Dia',
formFieldOption__expiration__1y: '1 Ano',
formFieldOption__expiration__30d: '30 Dias',
formFieldOption__expiration__60d: '60 Dias',
formFieldOption__expiration__7d: '7 Dias',
formFieldOption__expiration__90d: '90 Dias',
formFieldOption__expiration__never: 'Nunca',
formHint: 'Forneça um nome para gerar uma nova chave. Você poderá revogá-la a qualquer momento.',
formTitle: 'Adicionar nova chave de API',
lastUsed__days: '{{days}}d atrás',
lastUsed__hours: '{{hours}}h atrás',
- lastUsed__minutes: '{{minutes}}m atrás',
- lastUsed__months: '{{months}}m atrás',
+ lastUsed__minutes: '{{minutes}}min atrás',
+ lastUsed__months: '{{months}}mês(es) atrás',
lastUsed__seconds: '{{seconds}}s atrás',
lastUsed__years: '{{years}}a atrás',
menuAction__revoke: 'Revogar chave',
revokeConfirmation: {
confirmationText: undefined,
formButtonPrimary__revoke: undefined,
formHint: undefined,
formTitle: undefined,
confirmationText: 'Revogar',
formButtonPrimary__revoke: 'Revogar chave',
formHint: 'Tem certeza de que deseja excluir esta chave de API?',
formTitle: 'Revogar chave de API "{{apiKeyName}}"?',
},
},
backButton: 'Voltar',
Expand All @@ -55,8 +78,8 @@ export const ptBR: LocalizationResource = {
badge__endsAt: "Termina {{ date | shortDate('pt-BR') }}",
badge__expired: 'Expirado',
badge__otherImpersonatorDevice: 'Personificar outro dispositivo',
badge__pastDueAt: undefined,
badge__pastDuePlan: undefined,
badge__pastDueAt: "Vencido em {{ date | shortDate('pt-BR') }}",
badge__pastDuePlan: 'Vencido',
badge__primary: 'Principal',
badge__renewsAt: "Renova {{ date | shortDate('pt-BR') }}",
badge__requiresAction: 'Requer ação',
Expand All @@ -80,7 +103,8 @@ export const ptBR: LocalizationResource = {
cancelSubscriptionTitle: 'Cancelar assinatura do plano {{plan}}?',
cannotSubscribeMonthly:
'Você não pode assinar este plano pagando mensalmente. Para assinar este plano, você precisa escolher pagar anualmente.',
cannotSubscribeUnrecoverable: undefined,
cannotSubscribeUnrecoverable:
'Você não pode assinar este plano. Sua assinatura existente é mais cara que este plano.',
checkout: {
description__paymentSuccessful: 'Seu pagamento foi realizado com sucesso.',
description__subscriptionSuccessful: 'Sua nova assinatura está pronta.',
Expand Down Expand Up @@ -139,26 +163,26 @@ export const ptBR: LocalizationResource = {
seeAllFeatures: 'Ver todos os recursos',
subscribe: 'Assinar',
subscriptionDetails: {
beginsOn: undefined,
currentBillingCycle: undefined,
endsOn: undefined,
nextPaymentAmount: undefined,
nextPaymentOn: undefined,
pastDueAt: undefined,
renewsAt: undefined,
subscribedOn: undefined,
title: undefined,
beginsOn: 'Inicia em',
currentBillingCycle: 'Ciclo de faturamento atual',
endsOn: 'Termina em',
nextPaymentAmount: 'Valor do próximo pagamento',
nextPaymentOn: 'Próximo pagamento em',
pastDueAt: 'Vencido em',
renewsAt: 'Renova em',
subscribedOn: 'Assinado em',
title: 'Assinatura',
},
subtotal: 'Subtotal',
switchPlan: 'Mudar de plano',
switchToAnnual: 'Mudar para anual',
switchToAnnualWithAnnualPrice: undefined,
switchToAnnualWithAnnualPrice: 'Mudar para anual {{currency}}{{price}} / ano',
switchToMonthly: 'Mudar para mensal',
switchToMonthlyWithPrice: undefined,
switchToMonthlyWithPrice: 'Mudar para mensal {{currency}}{{price}} / mês',
totalDue: 'Total devido',
totalDueToday: 'Total devido hoje',
viewFeatures: 'Ver recursos',
viewPayment: undefined,
viewPayment: 'Ver pagamento',
year: 'Ano',
},
createOrganization: {
Expand All @@ -177,7 +201,7 @@ export const ptBR: LocalizationResource = {
sameDay: "Hoje às {{ date | timeString('pt-BR') }}",
},
dividerText: 'ou',
footerActionLink__alternativePhoneCodeProvider: undefined,
footerActionLink__alternativePhoneCodeProvider: 'Enviar código via SMS',
footerActionLink__useAnotherMethod: 'Utilize outro método',
footerPageLink__help: 'Ajuda',
footerPageLink__privacy: 'Privacidade',
Expand All @@ -191,9 +215,9 @@ export const ptBR: LocalizationResource = {
formFieldHintText__optional: 'Opcional',
formFieldHintText__slug:
'Um rótulo é um identificador legível por humanos que deve ser único. É comumente usado em URLs.',
formFieldInputPlaceholder__apiKeyDescription: undefined,
formFieldInputPlaceholder__apiKeyExpirationDate: undefined,
formFieldInputPlaceholder__apiKeyName: undefined,
formFieldInputPlaceholder__apiKeyDescription: 'Explique por que você está gerando esta chave',
formFieldInputPlaceholder__apiKeyExpirationDate: 'Selecionar data',
formFieldInputPlaceholder__apiKeyName: 'Digite o nome da sua chave secreta',
formFieldInputPlaceholder__backupCode: 'Insira o código de backup',
formFieldInputPlaceholder__confirmDeletionUserAccount: 'Excluir conta',
formFieldInputPlaceholder__emailAddress: 'Digite o endereço de e-mail',
Expand All @@ -208,9 +232,9 @@ export const ptBR: LocalizationResource = {
formFieldInputPlaceholder__password: 'Digite sua senha',
formFieldInputPlaceholder__phoneNumber: 'Digite seu número de telefone',
formFieldInputPlaceholder__username: 'Digite seu nome de usuário',
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
formFieldLabel__apiKeyDescription: 'Descrição',
formFieldLabel__apiKeyExpiration: 'Expiração',
formFieldLabel__apiKeyName: 'Nome da chave de API',
formFieldLabel__automaticInvitations: 'Ativar convites automáticos para este domínio',
formFieldLabel__backupCode: 'Código de backup',
formFieldLabel__confirmDeletion: 'Confirmar exclusão',
Expand Down Expand Up @@ -256,7 +280,7 @@ export const ptBR: LocalizationResource = {
},
organizationProfile: {
apiKeysPage: {
title: undefined,
title: 'Chaves de API',
},
badge__automaticInvitation: 'Convites automáticos',
badge__automaticSuggestion: 'Sugestões automáticas',
Expand Down Expand Up @@ -378,7 +402,7 @@ export const ptBR: LocalizationResource = {
},
},
navbar: {
apiKeys: undefined,
apiKeys: 'Chaves de API',
billing: 'Faturamento',
description: 'Gerencie sua organização.',
general: 'Geral',
Expand Down Expand Up @@ -696,7 +720,7 @@ export const ptBR: LocalizationResource = {
title: 'Entrar no {{applicationName}} com {{provider}}',
},
subtitle: 'para continuar em {{applicationName}}',
subtitleCombined: undefined,
subtitleCombined: 'Bem-vindo de volta! Por favor, faça login para continuar',
title: 'Entrar',
titleCombined: 'Continuar em {{applicationName}}',
},
Expand Down Expand Up @@ -797,29 +821,29 @@ export const ptBR: LocalizationResource = {
},
},
socialButtonsBlockButton: 'Continuar com {{provider|titleize}}',
socialButtonsBlockButtonManyInView: undefined,
socialButtonsBlockButtonManyInView: '{{provider|titleize}}',
unstable__errors: {
already_a_member_in_organization: '{{email}} já é membro da organização.',
captcha_invalid:
'Não foi possível se inscrever devido a falhas nas validações de segurança. Por favor, atualize a página para tentar novamente ou entre em contato com o suporte para obter mais ajuda.',
captcha_unavailable:
'Não foi possível se inscrever devido à indisponibilidade do captcha. Por favor atualize a página para tentar novamente ou entre em contato com o suporte para obter mais ajuda.',
form_code_incorrect: undefined,
form_code_incorrect: 'Código incorreto.',
form_identifier_exists__email_address: 'E-mail já está em uso. Por favor, tente outro.',
form_identifier_exists__phone_number: 'Telefone já está em uso. Por favor, tente outro.',
form_identifier_exists__username: 'Nome de usuário já está em uso. Por favor, tente outro.',
form_identifier_not_found: 'Não foi possível encontrar o usuário.',
form_param_format_invalid: undefined,
form_param_format_invalid: 'Formato inválido.',
form_param_format_invalid__email_address: 'O endereço de e-mail deve ser um endereço de e-mail válido.',
form_param_format_invalid__phone_number: 'Número de telefone precisa estar num formato internacional válido.',
form_param_max_length_exceeded__first_name: 'O primeiro nome não deve exceder 256 caracteres.',
form_param_max_length_exceeded__last_name: 'O sobrenome não deve exceder 256 caracteres.',
form_param_max_length_exceeded__name: 'O nome não deve exceder 256 caracteres.',
form_param_nil: undefined,
form_param_type_invalid: undefined,
form_param_type_invalid__email_address: undefined,
form_param_type_invalid__phone_number: undefined,
form_param_value_invalid: undefined,
form_param_nil: 'Campo obrigatório.',
form_param_type_invalid: 'Tipo de parâmetro inválido.',
form_param_type_invalid__email_address: 'Endereço de e-mail inválido.',
form_param_type_invalid__phone_number: 'Número de telefone inválido.',
form_param_value_invalid: 'Valor inválido.',
form_password_incorrect: 'Senha incorreta.',
form_password_length_too_short: 'Sua senha é muito curta. Por favor, tente novamente.',
form_password_not_strong_enough: 'Sua senha não é forte o suficiente.',
Expand All @@ -835,7 +859,8 @@ export const ptBR: LocalizationResource = {
"O endereço de e-mail ou número de telefone não é permitido para registro. Isso pode ser devido ao uso de '+', '=', '#' ou '.' no endereço de e-mail, o uso de um domínio associado a um serviço de e-mail temporário ou uma exclusão explícita.",
organization_domain_blocked: 'Este é um provedor de domínio de e-mail bloqueado. Por favor, use um diferente.',
organization_domain_common: 'Este é um provedor de domínio de e-mail comum. Por favor, use um diferente.',
organization_domain_exists_for_enterprise_connection: undefined,
organization_domain_exists_for_enterprise_connection:
'Este domínio já existe para uma conexão empresarial.',
organization_membership_quota_exceeded:
'Você chegou ao seu limite de membros da organização, incluindo convites pendentes.',
organization_minimum_permissions_needed:
Expand All @@ -856,7 +881,7 @@ export const ptBR: LocalizationResource = {
},
phone_number_exists: 'Este número de telefone já está em uso. Por favor, tente outro.',
session_exists: 'Você já está conectado.',
web3_missing_identifier: undefined,
web3_missing_identifier: 'Uma extensão de carteira Web3 não pode ser encontrada. Por favor, instale uma para continuar.',
zxcvbn: {
couldBeStronger: 'Sua senha funciona, mas poderia ser mais forte. Tente adicionar mais caracteres.',
goodPassword: 'Sua senha atende a todos os requisitos necessários.',
Expand Down Expand Up @@ -905,7 +930,7 @@ export const ptBR: LocalizationResource = {
},
userProfile: {
apiKeysPage: {
title: undefined,
title: 'Chaves de API',
},
backupCodePage: {
actionLabel__copied: 'Copiado!',
Expand Down Expand Up @@ -1091,7 +1116,7 @@ export const ptBR: LocalizationResource = {
mobileButton__menu: 'Menu',
navbar: {
account: 'Perfil',
apiKeys: undefined,
apiKeys: 'Chaves de API',
billing: 'Faturamento',
description: 'Gerencie seus dados de perfil.',
security: 'Segurança',
Expand Down Expand Up @@ -1195,7 +1220,7 @@ export const ptBR: LocalizationResource = {
passkeysSection: {
menuAction__destructive: 'Remover',
menuAction__rename: 'Renomear',
primaryButton: undefined,
primaryButton: 'Adicionar chave de acesso',
title: 'Chaves de acesso',
},
passwordSection: {
Expand All @@ -1222,7 +1247,7 @@ export const ptBR: LocalizationResource = {
},
web3WalletsSection: {
destructiveAction: 'Remover carteira',
detailsAction__nonPrimary: undefined,
detailsAction__nonPrimary: 'Conectar carteira',
primaryButton: 'Carteiras Web3',
title: 'Carteiras Web3',
},
Expand Down