aboutsummaryrefslogtreecommitdiffstats
path: root/src/locales/pt.json
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-06-24 08:59:31 -0700
committerAdam Soltys <[email protected]>2026-06-24 08:59:31 -0700
commit17acf5ec80a0c0b0acc44a6a8373e154c68d4748 (patch)
treea3fb56b85cc9cd21962ed64b084294096948d75b /src/locales/pt.json
parentf59cca61111f38963099190bdbbce9a76bc3fafe (diff)
downloadcoinosv3-17acf5ec80a0c0b0acc44a6a8373e154c68d4748.tar.gz
coinosv3-17acf5ec80a0c0b0acc44a6a8373e154c68d4748.zip
Split translations into per-language files, lazy-loaded
Only English is bundled in index.html now; the other 19 languages are emitted as dist/locales/<code>.json and fetched on demand when a visitor actually uses one (via auto-detect, the picker, or ?lang=xx). This drops index.html from ~511KB to ~318KB; a non-English visitor fetches just their one ~8-10KB locale, which the service worker then caches for offline use. t() falls back to English until a locale resolves. - i18n.js keeps only en + a loadLocale() fetcher; locale data moved to src/locales/*.json. - build.js emits dist/locales/; dev.js serves /locales/<code>.json. - Deploy hook publishes the locales/ subdir. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Diffstat (limited to 'src/locales/pt.json')
-rw-r--r--src/locales/pt.json145
1 files changed, 145 insertions, 0 deletions
diff --git a/src/locales/pt.json b/src/locales/pt.json
new file mode 100644
index 0000000..277622d
--- /dev/null
+++ b/src/locales/pt.json
@@ -0,0 +1,145 @@
+{
+ "passphrase": "Senha",
+ "howItWorks": "Como funciona",
+ "installApp": "Instalar aplicativo",
+ "hiwBasicsTitle": "O básico",
+ "hiwBasics1": "Quando você cria uma carteira, a página gera doze palavras aleatórias. Essas palavras são a chave da sua carteira. Qualquer pessoa que as tiver pode gastar as moedas, então anote-as no papel e guarde-as em um lugar que só você possa acessar.",
+ "hiwBasics2": "Se você perder as doze palavras e não tiver um backup, as moedas estarão perdidas para sempre. Não há link de redefinição nem ninguém para ligar, então faça o backup antes de colocar dinheiro.",
+ "hiwBasics3": "Não há servidor nem conta. O aplicativo inteiro é uma única página que roda no seu navegador, então ninguém guarda suas moedas e nada em um servidor jamais vê suas chaves. Para mostrar seu saldo e histórico, ele consulta um explorador de blocos público (mempool.space por padrão, ou seu próprio nó, se você configurar um nas Configurações).",
+ "hiwBasics4": "Você pode até salvar esta página e abri-la diretamente do seu computador sem internet alguma. Ela continua funcionando offline.",
+ "hiwBasics5": "Ela segue os padrões usuais do Bitcoin (uma frase BIP39 de 12 palavras e chaves BIP84 native SegWit), então, se este site algum dia desaparecer, você pode restaurar a mesma frase no Sparrow, Electrum ou qualquer outra carteira padrão e suas moedas estarão lá.",
+ "hiwTribute": "O nome Hal Wallet é uma homenagem ao lendário cypherpunk e pioneiro do Bitcoin, Hal Finney (1956–2014).",
+ "signExport": "Assinar e (transmitir em outro lugar)",
+ "scanQr": "Ler QR",
+ "scanHint": "Aponte a câmera para um código QR",
+ "scanNoCamera": "Não foi possível acessar a câmera.",
+ "scanNoDecoder": "A leitura de QR precisa de conexão na primeira vez que é usada.",
+ "scanUnrecognized": "Não foi possível ler um endereço Bitcoin desse QR.",
+ "broadcastScanned": "Transmitir transação?",
+ "broadcastNow": "Transmitir",
+ "scanOffline": "Você está offline — reconecte-se para transmitir esta transação.",
+ "loadingHistory": "Carregando transações…",
+ "explorer": "Explorador de blocos",
+ "explorerDesc": "O servidor que esta carteira consulta para saldos e histórico. Aponte-o para seu próprio nó para máxima privacidade.",
+ "explorerUrl": "URL do servidor",
+ "explorerUrlHint": "Base REST do Esplora / electrs, por exemplo https://mempool.space/api",
+ "deviceSync": "Sincronização de dispositivos",
+ "deviceSyncDesc": "Mantenha esta carteira sincronizada entre seus dispositivos armazenando uma cópia criptografada em um relay Nostr — somente um dispositivo com sua seed pode lê-la. Desative para manter tudo neste dispositivo.",
+ "syncAcross": "Sincronizar entre dispositivos",
+ "syncOn": "Ativado",
+ "syncOff": "Desativado",
+ "relaysLabel": "Relays",
+ "relaysHint": "Um URL wss:// por linha.",
+ "home": "Início",
+ "logout": "Sair",
+ "createNew": "Criar nova",
+ "importExisting": "Importar existente",
+ "genIntro": "Gere uma nova frase semente de 12 palavras. Anote-a. É a única forma de recuperar esta carteira.",
+ "generateSeed": "Gerar frase semente",
+ "writeDownWarn": "⚠ Anote estas 12 palavras no papel, em ordem. Quem as tiver pode gastar suas moedas.",
+ "copyPhrase": "Copiar frase",
+ "regenerate": "Gerar novamente",
+ "verifyBackup": "Verificar backup",
+ "skipVerification": "Pular verificação",
+ "confirmBackupIntro": "Confirme seu backup digitando as palavras solicitadas.",
+ "wordN": "Palavra nº {n}",
+ "reenterPassphrase": "Digite a senha novamente",
+ "back": "← Voltar",
+ "openWallet": "Abrir carteira",
+ "wordsMismatch": "Essas palavras não correspondem à sua frase. Verifique seu backup.",
+ "passphraseMismatch": "Essa senha não corresponde à que você digitou.",
+ "seedPhrase": "Frase semente",
+ "seedPlaceholder": "digite suas palavras separadas por espaços",
+ "optionalPassphrase": "Senha opcional",
+ "leaveBlank": "deixe em branco se não usar",
+ "show": "Mostrar",
+ "hide": "Ocultar",
+ "invalidSeed": "Frase semente inválida — verifique a grafia e a ordem das palavras.",
+ "keysNote": "As chaves nunca saem do seu navegador. Funciona offline. Salve esta página e abra-a localmente.",
+ "balance": "Saldo",
+ "pending": "Pendente",
+ "tabReceive": "Receber",
+ "tabSend": "Enviar",
+ "tabHistory": "Histórico",
+ "tabSettings": "Ajustes",
+ "copyAddress": "Copiar endereço",
+ "paymentReceived": "Pagamento recebido!",
+ "tapToProceed": "Toque em qualquer lugar para continuar",
+ "recipient": "Destinatário",
+ "recipients": "Destinatários",
+ "max": "Máx",
+ "feeRate": "Taxa",
+ "feeEconomy": "Econômica",
+ "feeNormal": "Normal",
+ "feePriority": "Prioridade",
+ "feeCustom": "Personalizada",
+ "selectedRate": "Taxa escolhida: {n} sat/vB",
+ "coinSelection": "Seleção de moedas",
+ "automatic": "Automática",
+ "manual": "Manual",
+ "noCoins": "Nenhuma moeda disponível.",
+ "nSelected": "{n} selecionada(s)",
+ "addRecipient": "+ Adicionar destinatário",
+ "reviewTx": "Revisar transação",
+ "remove": "Remover",
+ "enterRecipientAddr": "Digite um endereço de destino.",
+ "enterAddrForN": "Digite um endereço para o destinatário {n}.",
+ "enterValidAmtForN": "Digite um valor válido para o destinatário {n}.",
+ "selectCoin": "Selecione ao menos uma moeda para gastar.",
+ "networkFee": "Taxa de rede",
+ "offlineSignNote": "Offline: assine agora e transmita a transação de um dispositivo conectado.",
+ "signBroadcast": "Assinar e transmitir",
+ "signTx": "Assinar transação",
+ "broadcastFailed": "Falha ao transmitir: {msg}",
+ "signingFailed": "Falha ao assinar: {msg}",
+ "done": "Concluído",
+ "txSignedNote": "✓ Transação assinada. Transmita o código abaixo de um dispositivo conectado (ex.: mempool.space → Broadcast).",
+ "transactionId": "ID da transação",
+ "signedTxRaw": "Transação assinada (código)",
+ "copyHex": "Copiar código",
+ "downloadLabel": "Baixar",
+ "showQrAirgap": "Mostrar QR (transferência offline)",
+ "txBroadcast": "✓ Transação transmitida!",
+ "copyTxid": "Copiar ID da transação",
+ "viewOnMempool": "Ver no mempool.space ↗",
+ "noTxYet": "Nenhuma transação ainda.",
+ "received": "Recebido",
+ "sent": "Enviado",
+ "pendingTag": "⏳ pendente",
+ "awaitingConfirmation": "aguardando confirmação",
+ "feeShort": "taxa {x}",
+ "historyOffline": "O histórico não está disponível offline.",
+ "status": "Status",
+ "confirmed": "Confirmada",
+ "confirmedTag": "confirmada",
+ "pendingInMempool": "Pendente (no mempool)",
+ "block": "Bloco",
+ "date": "Data",
+ "copyId": "Copiar ID",
+ "backToHistory": "← Voltar ao histórico",
+ "recoveryPhrase": "Frase de recuperação",
+ "recoveryWarn": "⚠ Quem vir estas palavras pode roubar seus fundos. Certifique-se de que ninguém esteja olhando antes de revelá-las.",
+ "bip39Passphrase": "Senha",
+ "copyPassphrase": "Copiar senha",
+ "revealRecovery": "Revelar frase de recuperação",
+ "offlineTransfer": "Transferência offline",
+ "offlineTransferDesc": "Exporte suas moedas em um dispositivo conectado, depois importe o arquivo em um offline (com esta carteira + semente) para assinar sem internet.",
+ "exportSnapshot": "⤓ Exportar snapshot",
+ "importSnapshot": "Importar snapshot…",
+ "rescan": "Reescanear",
+ "rescanDesc": "Seu endereço atual atualiza automaticamente. Reescaneie apenas se um pagamento foi enviado a um endereço antigo (reutilizado) e não aparece.",
+ "rescanWallet": "Reescanear carteira",
+ "scanning": "Escaneando…",
+ "language": "Idioma",
+ "offlineBanner": "Sem acesso à rede — trabalhando offline. Importe um snapshot em Ajustes para carregar moedas.",
+ "retry": "Tentar de novo",
+ "copied": "Copiado",
+ "snapshotExported": "Snapshot exportado",
+ "importedNCoins": "{n} moeda(s) importada(s)",
+ "unmatchedSuffix": " · {n} endereço(s) fora desta carteira",
+ "importFailed": "Falha ao importar: {msg}",
+ "copy": "Copiar",
+ "switchUnit": "Alternar BTC / sats",
+ "footerMadeBy": "feito por",
+ "footerSourceOn": "código disponível no"
+} \ No newline at end of file