diff options
| author | Adam Soltys <[email protected]> | 2026-06-24 08:59:31 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-06-24 08:59:31 -0700 |
| commit | 17acf5ec80a0c0b0acc44a6a8373e154c68d4748 (patch) | |
| tree | a3fb56b85cc9cd21962ed64b084294096948d75b /src/locales/pt.json | |
| parent | f59cca61111f38963099190bdbbce9a76bc3fafe (diff) | |
| download | coinosv3-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.json | 145 |
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 |
