Merged
Show file tree
Hide file tree
Changes from all 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 numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
---
'@clerk/localizations': patch
---

added missing ptBR translations
179 changes: 91 additions & 88 deletions packages/localizations/src/pt-BR.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,37 +14,58 @@ 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}}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 +76,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@@ -81,7 +102,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 DownExpand Up@@ -141,26 +163,26 @@ export const ptBR: LocalizationResource = {
startFreeTrial: undefined,
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@@ -179,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@@ -193,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',
Comment thread
tmilewski marked this conversation as resolved.
formFieldInputPlaceholder__confirmDeletionUserAccount: 'Excluir conta',
formFieldInputPlaceholder__emailAddress: 'Digite o endereço de e-mail',
Expand All@@ -210,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 DownExpand Up@@ -258,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 DownExpand Up@@ -380,7 +402,7 @@ export const ptBR: LocalizationResource = {
},
},
navbar: {
apiKeys: undefined,
apiKeys: 'Chaves de API',
billing: 'Faturamento',
description: 'Gerencie sua organização.',
general: 'Geral',
Expand DownExpand Up@@ -698,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 DownExpand Up@@ -799,49 +821,29 @@ export const ptBR: LocalizationResource = {
},
},
socialButtonsBlockButton: 'Continuar com {{provider|titleize}}',
socialButtonsBlockButtonManyInView: undefined,
taskChooseOrganization: {
chooseOrganization: {
action__createOrganization: undefined,
action__invitationAccept: undefined,
action__suggestionsAccept: undefined,
subtitle: undefined,
suggestionsAcceptedLabel: undefined,
title: undefined,
},
createOrganization: {
formButtonReset: undefined,
formButtonSubmit: undefined,
subtitle: undefined,
title: undefined,
},
signOut: {
actionLink: undefined,
actionText: 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@@ -857,7 +859,7 @@ 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@@ -878,7 +880,8 @@ 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 DownExpand Up@@ -927,7 +930,7 @@ export const ptBR: LocalizationResource = {
},
userProfile: {
apiKeysPage: {
title: undefined,
title: 'Chaves de API',
},
backupCodePage: {
actionLabel__copied: 'Copiado!',
Expand DownExpand Up@@ -1113,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 DownExpand Up@@ -1217,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@@ -1244,7 +1247,7 @@ export const ptBR: LocalizationResource = {
},
web3WalletsSection: {
destructiveAction: 'Remover carteira',
detailsAction__nonPrimary: undefined,
detailsAction__nonPrimary: 'Definir como principal',
primaryButton: 'Carteiras Web3',
title: 'Carteiras Web3',
},
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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 numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
---
'@clerk/localizations': patch
---

added missing ptBR translations
179 changes: 91 additions & 88 deletions packages/localizations/src/pt-BR.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,37 +14,58 @@ 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}}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 +76,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@@ -81,7 +102,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 DownExpand Up@@ -141,26 +163,26 @@ export const ptBR: LocalizationResource = {
startFreeTrial: undefined,
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@@ -179,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@@ -193,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',
Comment thread
tmilewski marked this conversation as resolved.
formFieldInputPlaceholder__confirmDeletionUserAccount: 'Excluir conta',
formFieldInputPlaceholder__emailAddress: 'Digite o endereço de e-mail',
Expand All@@ -210,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 DownExpand Up@@ -258,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 DownExpand Up@@ -380,7 +402,7 @@ export const ptBR: LocalizationResource = {
},
},
navbar: {
apiKeys: undefined,
apiKeys: 'Chaves de API',
billing: 'Faturamento',
description: 'Gerencie sua organização.',
general: 'Geral',
Expand DownExpand Up@@ -698,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 DownExpand Up@@ -799,49 +821,29 @@ export const ptBR: LocalizationResource = {
},
},
socialButtonsBlockButton: 'Continuar com {{provider|titleize}}',
socialButtonsBlockButtonManyInView: undefined,
taskChooseOrganization: {
chooseOrganization: {
action__createOrganization: undefined,
action__invitationAccept: undefined,
action__suggestionsAccept: undefined,
subtitle: undefined,
suggestionsAcceptedLabel: undefined,
title: undefined,
},
createOrganization: {
formButtonReset: undefined,
formButtonSubmit: undefined,
subtitle: undefined,
title: undefined,
},
signOut: {
actionLink: undefined,
actionText: 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@@ -857,7 +859,7 @@ 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@@ -878,7 +880,8 @@ 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 DownExpand Up@@ -927,7 +930,7 @@ export const ptBR: LocalizationResource = {
},
userProfile: {
apiKeysPage: {
title: undefined,
title: 'Chaves de API',
},
backupCodePage: {
actionLabel__copied: 'Copiado!',
Expand DownExpand Up@@ -1113,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 DownExpand Up@@ -1217,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@@ -1244,7 +1247,7 @@ export const ptBR: LocalizationResource = {
},
web3WalletsSection: {
destructiveAction: 'Remover carteira',
detailsAction__nonPrimary: undefined,
detailsAction__nonPrimary: 'Definir como principal',
primaryButton: 'Carteiras Web3',
title: 'Carteiras Web3',
},
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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 numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
---
'@clerk/localizations': patch
---

added missing ptBR translations
179 changes: 91 additions & 88 deletions packages/localizations/src/pt-BR.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,37 +14,58 @@ 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}}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 +76,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@@ -81,7 +102,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 DownExpand Up@@ -141,26 +163,26 @@ export const ptBR: LocalizationResource = {
startFreeTrial: undefined,
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@@ -179,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@@ -193,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',
Comment thread
tmilewski marked this conversation as resolved.
formFieldInputPlaceholder__confirmDeletionUserAccount: 'Excluir conta',
formFieldInputPlaceholder__emailAddress: 'Digite o endereço de e-mail',
Expand All@@ -210,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 DownExpand Up@@ -258,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 DownExpand Up@@ -380,7 +402,7 @@ export const ptBR: LocalizationResource = {
},
},
navbar: {
apiKeys: undefined,
apiKeys: 'Chaves de API',
billing: 'Faturamento',
description: 'Gerencie sua organização.',
general: 'Geral',
Expand DownExpand Up@@ -698,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 DownExpand Up@@ -799,49 +821,29 @@ export const ptBR: LocalizationResource = {
},
},
socialButtonsBlockButton: 'Continuar com {{provider|titleize}}',
socialButtonsBlockButtonManyInView: undefined,
taskChooseOrganization: {
chooseOrganization: {
action__createOrganization: undefined,
action__invitationAccept: undefined,
action__suggestionsAccept: undefined,
subtitle: undefined,
suggestionsAcceptedLabel: undefined,
title: undefined,
},
createOrganization: {
formButtonReset: undefined,
formButtonSubmit: undefined,
subtitle: undefined,
title: undefined,
},
signOut: {
actionLink: undefined,
actionText: 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@@ -857,7 +859,7 @@ 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@@ -878,7 +880,8 @@ 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 DownExpand Up@@ -927,7 +930,7 @@ export const ptBR: LocalizationResource = {
},
userProfile: {
apiKeysPage: {
title: undefined,
title: 'Chaves de API',
},
backupCodePage: {
actionLabel__copied: 'Copiado!',
Expand DownExpand Up@@ -1113,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 DownExpand Up@@ -1217,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@@ -1244,7 +1247,7 @@ export const ptBR: LocalizationResource = {
},
web3WalletsSection: {
destructiveAction: 'Remover carteira',
detailsAction__nonPrimary: undefined,
detailsAction__nonPrimary: 'Definir como principal',
primaryButton: 'Carteiras Web3',
title: 'Carteiras Web3',
},
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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 numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
---
'@clerk/localizations': patch
---

added missing ptBR translations
179 changes: 91 additions & 88 deletions packages/localizations/src/pt-BR.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,37 +14,58 @@ 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}}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 +76,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@@ -81,7 +102,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 DownExpand Up@@ -141,26 +163,26 @@ export const ptBR: LocalizationResource = {
startFreeTrial: undefined,
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@@ -179,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@@ -193,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',
Comment thread
tmilewski marked this conversation as resolved.
formFieldInputPlaceholder__confirmDeletionUserAccount: 'Excluir conta',
formFieldInputPlaceholder__emailAddress: 'Digite o endereço de e-mail',
Expand All@@ -210,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 DownExpand Up@@ -258,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 DownExpand Up@@ -380,7 +402,7 @@ export const ptBR: LocalizationResource = {
},
},
navbar: {
apiKeys: undefined,
apiKeys: 'Chaves de API',
billing: 'Faturamento',
description: 'Gerencie sua organização.',
general: 'Geral',
Expand DownExpand Up@@ -698,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 DownExpand Up@@ -799,49 +821,29 @@ export const ptBR: LocalizationResource = {
},
},
socialButtonsBlockButton: 'Continuar com {{provider|titleize}}',
socialButtonsBlockButtonManyInView: undefined,
taskChooseOrganization: {
chooseOrganization: {
action__createOrganization: undefined,
action__invitationAccept: undefined,
action__suggestionsAccept: undefined,
subtitle: undefined,
suggestionsAcceptedLabel: undefined,
title: undefined,
},
createOrganization: {
formButtonReset: undefined,
formButtonSubmit: undefined,
subtitle: undefined,
title: undefined,
},
signOut: {
actionLink: undefined,
actionText: 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@@ -857,7 +859,7 @@ 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@@ -878,7 +880,8 @@ 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 DownExpand Up@@ -927,7 +930,7 @@ export const ptBR: LocalizationResource = {
},
userProfile: {
apiKeysPage: {
title: undefined,
title: 'Chaves de API',
},
backupCodePage: {
actionLabel__copied: 'Copiado!',
Expand DownExpand Up@@ -1113,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 DownExpand Up@@ -1217,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@@ -1244,7 +1247,7 @@ export const ptBR: LocalizationResource = {
},
web3WalletsSection: {
destructiveAction: 'Remover carteira',
detailsAction__nonPrimary: undefined,
detailsAction__nonPrimary: 'Definir como principal',
primaryButton: 'Carteiras Web3',
title: 'Carteiras Web3',
},
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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 numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
---
'@clerk/localizations': patch
---

added missing ptBR translations
179 changes: 91 additions & 88 deletions packages/localizations/src/pt-BR.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,37 +14,58 @@ 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}}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 +76,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@@ -81,7 +102,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 DownExpand Up@@ -141,26 +163,26 @@ export const ptBR: LocalizationResource = {
startFreeTrial: undefined,
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@@ -179,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@@ -193,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',
Comment thread
tmilewski marked this conversation as resolved.
formFieldInputPlaceholder__confirmDeletionUserAccount: 'Excluir conta',
formFieldInputPlaceholder__emailAddress: 'Digite o endereço de e-mail',
Expand All@@ -210,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 DownExpand Up@@ -258,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 DownExpand Up@@ -380,7 +402,7 @@ export const ptBR: LocalizationResource = {
},
},
navbar: {
apiKeys: undefined,
apiKeys: 'Chaves de API',
billing: 'Faturamento',
description: 'Gerencie sua organização.',
general: 'Geral',
Expand DownExpand Up@@ -698,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 DownExpand Up@@ -799,49 +821,29 @@ export const ptBR: LocalizationResource = {
},
},
socialButtonsBlockButton: 'Continuar com {{provider|titleize}}',
socialButtonsBlockButtonManyInView: undefined,
taskChooseOrganization: {
chooseOrganization: {
action__createOrganization: undefined,
action__invitationAccept: undefined,
action__suggestionsAccept: undefined,
subtitle: undefined,
suggestionsAcceptedLabel: undefined,
title: undefined,
},
createOrganization: {
formButtonReset: undefined,
formButtonSubmit: undefined,
subtitle: undefined,
title: undefined,
},
signOut: {
actionLink: undefined,
actionText: 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@@ -857,7 +859,7 @@ 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@@ -878,7 +880,8 @@ 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 DownExpand Up@@ -927,7 +930,7 @@ export const ptBR: LocalizationResource = {
},
userProfile: {
apiKeysPage: {
title: undefined,
title: 'Chaves de API',
},
backupCodePage: {
actionLabel__copied: 'Copiado!',
Expand DownExpand Up@@ -1113,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 DownExpand Up@@ -1217,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@@ -1244,7 +1247,7 @@ export const ptBR: LocalizationResource = {
},
web3WalletsSection: {
destructiveAction: 'Remover carteira',
detailsAction__nonPrimary: undefined,
detailsAction__nonPrimary: 'Definir como principal',
primaryButton: 'Carteiras Web3',
title: 'Carteiras Web3',
},
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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 numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
---
'@clerk/localizations': patch
---

added missing ptBR translations
179 changes: 91 additions & 88 deletions packages/localizations/src/pt-BR.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,37 +14,58 @@ 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}}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 +76,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@@ -81,7 +102,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 DownExpand Up@@ -141,26 +163,26 @@ export const ptBR: LocalizationResource = {
startFreeTrial: undefined,
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@@ -179,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@@ -193,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',
Comment thread
tmilewski marked this conversation as resolved.
formFieldInputPlaceholder__confirmDeletionUserAccount: 'Excluir conta',
formFieldInputPlaceholder__emailAddress: 'Digite o endereço de e-mail',
Expand All@@ -210,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 DownExpand Up@@ -258,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 DownExpand Up@@ -380,7 +402,7 @@ export const ptBR: LocalizationResource = {
},
},
navbar: {
apiKeys: undefined,
apiKeys: 'Chaves de API',
billing: 'Faturamento',
description: 'Gerencie sua organização.',
general: 'Geral',
Expand DownExpand Up@@ -698,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 DownExpand Up@@ -799,49 +821,29 @@ export const ptBR: LocalizationResource = {
},
},
socialButtonsBlockButton: 'Continuar com {{provider|titleize}}',
socialButtonsBlockButtonManyInView: undefined,
taskChooseOrganization: {
chooseOrganization: {
action__createOrganization: undefined,
action__invitationAccept: undefined,
action__suggestionsAccept: undefined,
subtitle: undefined,
suggestionsAcceptedLabel: undefined,
title: undefined,
},
createOrganization: {
formButtonReset: undefined,
formButtonSubmit: undefined,
subtitle: undefined,
title: undefined,
},
signOut: {
actionLink: undefined,
actionText: 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@@ -857,7 +859,7 @@ 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@@ -878,7 +880,8 @@ 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 DownExpand Up@@ -927,7 +930,7 @@ export const ptBR: LocalizationResource = {
},
userProfile: {
apiKeysPage: {
title: undefined,
title: 'Chaves de API',
},
backupCodePage: {
actionLabel__copied: 'Copiado!',
Expand DownExpand Up@@ -1113,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 DownExpand Up@@ -1217,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@@ -1244,7 +1247,7 @@ export const ptBR: LocalizationResource = {
},
web3WalletsSection: {
destructiveAction: 'Remover carteira',
detailsAction__nonPrimary: undefined,
detailsAction__nonPrimary: 'Definir como principal',
primaryButton: 'Carteiras Web3',
title: 'Carteiras Web3',
},
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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 numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
---
'@clerk/localizations': patch
---

added missing ptBR translations
179 changes: 91 additions & 88 deletions packages/localizations/src/pt-BR.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,37 +14,58 @@ 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}}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 +76,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@@ -81,7 +102,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 DownExpand Up@@ -141,26 +163,26 @@ export const ptBR: LocalizationResource = {
startFreeTrial: undefined,
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@@ -179,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@@ -193,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',
Comment thread
tmilewski marked this conversation as resolved.
formFieldInputPlaceholder__confirmDeletionUserAccount: 'Excluir conta',
formFieldInputPlaceholder__emailAddress: 'Digite o endereço de e-mail',
Expand All@@ -210,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 DownExpand Up@@ -258,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 DownExpand Up@@ -380,7 +402,7 @@ export const ptBR: LocalizationResource = {
},
},
navbar: {
apiKeys: undefined,
apiKeys: 'Chaves de API',
billing: 'Faturamento',
description: 'Gerencie sua organização.',
general: 'Geral',
Expand DownExpand Up@@ -698,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 DownExpand Up@@ -799,49 +821,29 @@ export const ptBR: LocalizationResource = {
},
},
socialButtonsBlockButton: 'Continuar com {{provider|titleize}}',
socialButtonsBlockButtonManyInView: undefined,
taskChooseOrganization: {
chooseOrganization: {
action__createOrganization: undefined,
action__invitationAccept: undefined,
action__suggestionsAccept: undefined,
subtitle: undefined,
suggestionsAcceptedLabel: undefined,
title: undefined,
},
createOrganization: {
formButtonReset: undefined,
formButtonSubmit: undefined,
subtitle: undefined,
title: undefined,
},
signOut: {
actionLink: undefined,
actionText: 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@@ -857,7 +859,7 @@ 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@@ -878,7 +880,8 @@ 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 DownExpand Up@@ -927,7 +930,7 @@ export const ptBR: LocalizationResource = {
},
userProfile: {
apiKeysPage: {
title: undefined,
title: 'Chaves de API',
},
backupCodePage: {
actionLabel__copied: 'Copiado!',
Expand DownExpand Up@@ -1113,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 DownExpand Up@@ -1217,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@@ -1244,7 +1247,7 @@ export const ptBR: LocalizationResource = {
},
web3WalletsSection: {
destructiveAction: 'Remover carteira',
detailsAction__nonPrimary: undefined,
detailsAction__nonPrimary: 'Definir como principal',
primaryButton: 'Carteiras Web3',
title: 'Carteiras Web3',
},
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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 numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
---
'@clerk/localizations': patch
---

added missing ptBR translations
179 changes: 91 additions & 88 deletions packages/localizations/src/pt-BR.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,37 +14,58 @@ 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}}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 +76,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@@ -81,7 +102,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 DownExpand Up@@ -141,26 +163,26 @@ export const ptBR: LocalizationResource = {
startFreeTrial: undefined,
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@@ -179,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@@ -193,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',
Comment thread
tmilewski marked this conversation as resolved.
formFieldInputPlaceholder__confirmDeletionUserAccount: 'Excluir conta',
formFieldInputPlaceholder__emailAddress: 'Digite o endereço de e-mail',
Expand All@@ -210,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 DownExpand Up@@ -258,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 DownExpand Up@@ -380,7 +402,7 @@ export const ptBR: LocalizationResource = {
},
},
navbar: {
apiKeys: undefined,
apiKeys: 'Chaves de API',
billing: 'Faturamento',
description: 'Gerencie sua organização.',
general: 'Geral',
Expand DownExpand Up@@ -698,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 DownExpand Up@@ -799,49 +821,29 @@ export const ptBR: LocalizationResource = {
},
},
socialButtonsBlockButton: 'Continuar com {{provider|titleize}}',
socialButtonsBlockButtonManyInView: undefined,
taskChooseOrganization: {
chooseOrganization: {
action__createOrganization: undefined,
action__invitationAccept: undefined,
action__suggestionsAccept: undefined,
subtitle: undefined,
suggestionsAcceptedLabel: undefined,
title: undefined,
},
createOrganization: {
formButtonReset: undefined,
formButtonSubmit: undefined,
subtitle: undefined,
title: undefined,
},
signOut: {
actionLink: undefined,
actionText: 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@@ -857,7 +859,7 @@ 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@@ -878,7 +880,8 @@ 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 DownExpand Up@@ -927,7 +930,7 @@ export const ptBR: LocalizationResource = {
},
userProfile: {
apiKeysPage: {
title: undefined,
title: 'Chaves de API',
},
backupCodePage: {
actionLabel__copied: 'Copiado!',
Expand DownExpand Up@@ -1113,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 DownExpand Up@@ -1217,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@@ -1244,7 +1247,7 @@ export const ptBR: LocalizationResource = {
},
web3WalletsSection: {
destructiveAction: 'Remover carteira',
detailsAction__nonPrimary: undefined,
detailsAction__nonPrimary: 'Definir como principal',
primaryButton: 'Carteiras Web3',
title: 'Carteiras Web3',
},
Expand Down
Loading