diff --git a/.changeset/olive-camels-live.md b/.changeset/olive-camels-live.md new file mode 100644 index 00000000000..698792c0a95 --- /dev/null +++ b/.changeset/olive-camels-live.md @@ -0,0 +1,5 @@ +--- +"thirdweb": patch +--- + +This pull request adds the complete Portuguese (Brazil) translation for the wallet connection module. It includes translations for connecting a wallet, sending/receiving funds, network management, and other wallet-related actions. This improves the user experience for Portuguese-speaking users. diff --git a/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/br.ts b/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/br.ts new file mode 100644 index 00000000000..340c8fd5e45 --- /dev/null +++ b/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/br.ts @@ -0,0 +1,124 @@ +import type { ConnectLocale } from "./types.js"; + +const connectWalletLocalPtBr: ConnectLocale = { + id: "pt_BR", + signIn: "Entrar", + defaultButtonTitle: "Conectar carteira", + connecting: "Conectando", + switchNetwork: "Trocar de rede", + switchingNetwork: "Trocando de rede", + defaultModalTitle: "Conectar", + recommended: "Recomendado", + installed: "Instalado", + continueAsGuest: "Continuar como convidado", + connectAWallet: "Conectar uma carteira", + newToWallets: "Novo em carteiras?", + getStarted: "Começar", + guest: "Convidado", + send: "Enviar", + receive: "Receber", + buy: "Comprar", + transactions: "Transações", + payTransactions: "Transações Fiat", + walletTransactions: "Transações de Carteira", + viewAllTransactions: "Ver todas as transações", + currentNetwork: "Rede atual", + switchAccount: "Trocar conta", + requestTestnetFunds: "Solicitar fundos para Testnet", + backupWallet: "Fazer backup da carteira", + guestWalletWarning: + "Esta é uma carteira de convidado temporária. Faça um backup se não quiser perder o acesso a ela", + switchTo: "Trocar para", + connectedToSmartWallet: "carteira inteligente", + confirmInWallet: "Confirmar na carteira", + disconnectWallet: "Desconectar carteira", + copyAddress: "Copiar endereço", + personalWallet: "Carteira pessoal", + smartWallet: "Carteira inteligente", + or: "Ou", + goBackButton: "Voltar", + passkeys: { + title: "Chave de acesso", + linkPasskey: "Vincular uma chave de acesso", + }, + welcomeScreen: { + defaultTitle: "Sua porta de entrada para o mundo descentralizado", + defaultSubtitle: "Conecte uma carteira para começar", + }, + agreement: { + prefix: "Ao conectar, você aceita os", + termsOfService: "Termos de serviço", + and: "e", + privacyPolicy: "Política de privacidade", + }, + networkSelector: { + title: "Selecionar rede", + mainnets: "Redes principais", + testnets: "Redes de teste", + allNetworks: "Todas", + addCustomNetwork: "Adicionar rede personalizada", + inputPlaceholder: "Buscar rede ou ID da cadeia", + categoryLabel: { + recentlyUsed: "Usadas recentemente", + popular: "Populares", + others: "Outras redes", + }, + loading: "Carregando", + failedToSwitch: "Erro ao trocar de rede", + }, + receiveFundsScreen: { + title: "Receber fundos", + instruction: + "Copie o endereço da carteira para enviar fundos para esta carteira", + }, + sendFundsScreen: { + title: "Enviar fundos", + submitButton: "Enviar", + token: "Token", + sendTo: "Enviar para", + amount: "Quantidade", + successMessage: "Transação bem-sucedida", + invalidAddress: "Endereço inválido", + noTokensFound: "Nenhum token encontrado", + searchToken: "Buscar ou colar o endereço do token", + transactionFailed: "Transação falhou", + transactionRejected: "Transação rejeitada", + insufficientFunds: "Fundos insuficientes", + selectTokenTitle: "Selecione um Token", + sending: "Enviando", + }, + signatureScreen: { + instructionScreen: { + title: "Entrar", + instruction: + "Por favor, assine a solicitação de mensagem na sua carteira para continuar", + signInButton: "Entrar", + disconnectWallet: "Desconectar carteira", + }, + signingScreen: { + title: "Entrando", + prompt: "Assine a solicitação de assinatura na sua carteira", + promptForSafe: + "Assine a solicitação de assinatura na sua carteira e aprove a transação no Safe", + approveTransactionInSafe: "Aprovar transação no Safe", + tryAgain: "Tentar novamente", + failedToSignIn: "Erro ao entrar", + inProgress: "Aguardando confirmação", + }, + }, + manageWallet: { + title: "Gerenciar Carteira", + linkedProfiles: "Perfis vinculados", + linkProfile: "Vincular um perfil", + connectAnApp: "Conectar um Aplicativo", + exportPrivateKey: "Exportar chave privada", + }, + viewFunds: { + title: "Ver Fundos", + viewNFTs: "Ver NFTs", + viewTokens: "Ver Tokens", + viewAssets: "Ver Ativos", + }, +}; + +export default connectWalletLocalPtBr; diff --git a/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/getConnectLocale.ts b/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/getConnectLocale.ts index 8c7adc39a43..dd2d4d194a9 100644 --- a/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/getConnectLocale.ts +++ b/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/getConnectLocale.ts @@ -24,6 +24,9 @@ export async function getConnectLocale(localeId: LocaleId) { case "fr_FR": { return (await import("./fr.js")).default; } + case "pt_BR": { + return (await import("./br.js")).default; + } default: { return (await import("./en.js")).default; } diff --git a/packages/thirdweb/src/react/web/ui/types.ts b/packages/thirdweb/src/react/web/ui/types.ts index 585cce9a2f5..a2ef30bcdd2 100644 --- a/packages/thirdweb/src/react/web/ui/types.ts +++ b/packages/thirdweb/src/react/web/ui/types.ts @@ -7,4 +7,5 @@ export type LocaleId = | "tl_PH" | "vi_VN" | "de_DE" - | "fr_FR"; + | "fr_FR" + | "pt_BR"; diff --git a/packages/thirdweb/src/react/web/wallets/injected/locale/br.ts b/packages/thirdweb/src/react/web/wallets/injected/locale/br.ts new file mode 100644 index 00000000000..e06704c6f08 --- /dev/null +++ b/packages/thirdweb/src/react/web/wallets/injected/locale/br.ts @@ -0,0 +1,27 @@ +import type { InjectedWalletLocale } from "./types.js"; + +/** + * @internal + */ +const injectedWalletLocalePtBr = (wallet: string): InjectedWalletLocale => ({ + connectionScreen: { + inProgress: "Aguardando Confirmação", + failed: "Falha na conexão", + instruction: `Aceite a solicitação de conexão no ${wallet}`, + retry: "Tentar novamente", + }, + getStartedScreen: { + instruction: `Escaneie o código QR para baixar o aplicativo ${wallet}`, + }, + scanScreen: { + instruction: `Escaneie o código QR com o aplicativo ${wallet} para conectar`, + }, + getStartedLink: `Não tem o ${wallet}?`, + download: { + chrome: "Baixar extensão para Chrome", + android: "Baixar no Google Play", + iOS: "Baixar na App Store", + }, +}); + +export default injectedWalletLocalePtBr; diff --git a/packages/thirdweb/src/react/web/wallets/injected/locale/getInjectedWalletLocale.ts b/packages/thirdweb/src/react/web/wallets/injected/locale/getInjectedWalletLocale.ts index 3168073b9b7..a2fb2a53d8f 100644 --- a/packages/thirdweb/src/react/web/wallets/injected/locale/getInjectedWalletLocale.ts +++ b/packages/thirdweb/src/react/web/wallets/injected/locale/getInjectedWalletLocale.ts @@ -22,6 +22,9 @@ export async function getInjectedWalletLocale( return (await import("./kr.js")).default; case "fr_FR": return (await import("./fr.js")).default; + case "pt_BR": { + return (await import("./br.js")).default; + } default: return (await import("./en.js")).default; } diff --git a/packages/thirdweb/src/react/web/wallets/shared/locale/br.ts b/packages/thirdweb/src/react/web/wallets/shared/locale/br.ts new file mode 100644 index 00000000000..48f9d56f274 --- /dev/null +++ b/packages/thirdweb/src/react/web/wallets/shared/locale/br.ts @@ -0,0 +1,62 @@ +import type { InAppWalletLocale } from "./types.js"; + +export default { + signInWithGoogle: "Google", + signInWithFacebook: "Facebook", + signInWithApple: "Apple", + signInWithDiscord: "Discord", + emailPlaceholder: "Endereço de e-mail", + submitEmail: "Continuar", + signIn: "Entrar", + or: "ou", + emailRequired: "Endereço de e-mail é obrigatório", + invalidEmail: "Endereço de e-mail inválido", + maxAccountsExceeded: + "Número máximo de contas excedido. Por favor, notifique o desenvolvedor do aplicativo.", + socialLoginScreen: { + title: "Entrar", + instruction: "Faça login na sua conta no pop-up", + failed: "Falha ao entrar", + retry: "Tentar novamente", + }, + emailLoginScreen: { + title: "Entrar", + enterCodeSendTo: "Digite o código de verificação enviado para", + newDeviceDetected: "Novo dispositivo detectado", + enterRecoveryCode: + "Digite o código de recuperação enviado por e-mail quando você se cadastrou", + invalidCode: "Código de verificação inválido", + invalidCodeOrRecoveryCode: + "Código de verificação ou código de recuperação inválido", + verify: "Verificar", + failedToSendCode: "Falha ao enviar código de verificação", + sendingCode: "Enviando código de verificação", + resendCode: "Reenviar código de verificação", + }, + createPassword: { + title: "Criar senha", + instruction: + "Defina uma senha para sua conta. Você precisará dessa senha ao conectar-se de um novo dispositivo.", + saveInstruction: "Certifique-se de salvá-la", + inputPlaceholder: "Digite sua senha", + confirmation: "Eu salvei minha senha", + submitButton: "Definir senha", + failedToSetPassword: "Falha ao definir senha", + }, + enterPassword: { + title: "Digite a senha", + instruction: "Digite a senha da sua conta", + inputPlaceholder: "Digite sua senha", + submitButton: "Verificar", + wrongPassword: "Senha incorreta", + }, + signInWithEmail: "Entrar com e-mail", + invalidPhone: "Número de telefone inválido", + phonePlaceholder: "Número de telefone", + signInWithPhone: "Entrar com número de telefone", + phoneRequired: "Número de telefone é obrigatório", + passkey: "Chave de acesso", + signInWithWallet: "Entrar com carteira", + linkWallet: "Vincular uma carteira", + loginAsGuest: "Continuar como convidado", +} satisfies InAppWalletLocale; diff --git a/packages/thirdweb/src/react/web/wallets/shared/locale/getConnectLocale.ts b/packages/thirdweb/src/react/web/wallets/shared/locale/getConnectLocale.ts index 88dea9709e3..ed2cfeb9142 100644 --- a/packages/thirdweb/src/react/web/wallets/shared/locale/getConnectLocale.ts +++ b/packages/thirdweb/src/react/web/wallets/shared/locale/getConnectLocale.ts @@ -22,6 +22,9 @@ export async function getInAppWalletLocale( return (await import("./kr.js")).default; case "fr_FR": return (await import("./fr.js")).default; + case "pt_BR": { + return (await import("./br.js")).default; + } default: return (await import("./en.js")).default; } diff --git a/packages/thirdweb/src/react/web/wallets/smartWallet/locale/br.ts b/packages/thirdweb/src/react/web/wallets/smartWallet/locale/br.ts new file mode 100644 index 00000000000..a0e2bc6fe0a --- /dev/null +++ b/packages/thirdweb/src/react/web/wallets/smartWallet/locale/br.ts @@ -0,0 +1,13 @@ +import type { SmartWalletLocale } from "./types.js"; + +const smartWalletLocalePtBr: SmartWalletLocale = { + connecting: "Conectando à Conta Inteligente", + failedToConnect: "Falha ao conectar à Conta Inteligente", + wrongNetworkScreen: { + title: "Rede Incorreta", + subtitle: "Sua carteira não está conectada à rede requerida", + failedToSwitch: "Falha ao mudar de rede", + }, +}; + +export default smartWalletLocalePtBr; diff --git a/packages/thirdweb/src/react/web/wallets/smartWallet/locale/getSmartWalletLocale.ts b/packages/thirdweb/src/react/web/wallets/smartWallet/locale/getSmartWalletLocale.ts index c9556902dbf..5d78baf536e 100644 --- a/packages/thirdweb/src/react/web/wallets/smartWallet/locale/getSmartWalletLocale.ts +++ b/packages/thirdweb/src/react/web/wallets/smartWallet/locale/getSmartWalletLocale.ts @@ -22,6 +22,9 @@ export async function getSmartWalletLocale( return (await import("./kr.js")).default; case "fr_FR": return (await import("./fr.js")).default; + case "pt_BR": { + return (await import("./br.js")).default; + } default: return (await import("./en.js")).default; }