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/olive-camels-live.md
Original file line number Diff line number Diff line change
@@ -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.
124 changes: 124 additions & 0 deletions packages/thirdweb/src/react/web/ui/ConnectWallet/locale/br.ts
Original file line number Diff line number Diff line change
@@ -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;
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
3 changes: 2 additions & 1 deletion packages/thirdweb/src/react/web/ui/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ export type LocaleId =
| "tl_PH"
| "vi_VN"
| "de_DE"
| "fr_FR";
| "fr_FR"
| "pt_BR";
27 changes: 27 additions & 0 deletions packages/thirdweb/src/react/web/wallets/injected/locale/br.ts
Original file line number Diff line number Diff line change
@@ -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;
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
62 changes: 62 additions & 0 deletions packages/thirdweb/src/react/web/wallets/shared/locale/br.ts
Original file line number Diff line number Diff line change
@@ -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;
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
Loading