feat(i18n): add English source + 8-language translations for 193 UI strings
Adds the i18n source for 193 previously-hardcoded UI strings (the
security / PIN / lock flow, first-run seed-backup wizard, witness-rebuild
shutdown dialog, and balance / mining / explorer labels) so they can be
localized. The TR() call-site wrapping rides in the accompanying UI commit.
- 193 keys added to loadBuiltinEnglish() (the English source of truth),
including one pre-existing missing key (copied_to_clipboard).
- Additive res/lang/{de,es,fr,ja,ko,pt,ru,zh}.json (+193 each); every
translation's printf format-signature was validated against English
(0 mismatches) so the runtime validator accepts them.
- Rebuilt res/fonts/NotoSansCJK-Subset.ttf to cover ~30 new Han/Hangul
glyphs introduced by the zh/ja/ko translations (tofu-free).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
193
res/lang/pt.json
193
res/lang/pt.json
@@ -60,6 +60,80 @@
|
||||
"amount_label": "Valor:",
|
||||
"animate_avatars": "Animar avatares",
|
||||
"appearance": "APARÊNCIA",
|
||||
"appx_back": "Voltar",
|
||||
"appx_back_up_seed_phrase_title": "Faça o backup da sua frase-semente",
|
||||
"appx_birthday_block_height": "Nascimento (altura do bloco): %llu — faça o backup disto também.",
|
||||
"appx_blockchain_data_deleted": "Dados da blockchain excluídos (%d itens). O daemon está reiniciando para ressincronizar com a rede.",
|
||||
"appx_blockchain_maintenance_in_progress": "Uma operação de manutenção da blockchain já está em andamento.",
|
||||
"appx_blockchain_rescan_complete": "Reescaneamento da blockchain concluído",
|
||||
"appx_bootstrap_complete_reconciling": "Bootstrap concluído — reconciliando sua carteira com os novos dados da chain.",
|
||||
"appx_cancel": "Cancelar",
|
||||
"appx_cleaning_up": "Limpando...",
|
||||
"appx_confirm_your_backup": "Confirme seu backup",
|
||||
"appx_copied_clipboard_autoclears": "Copiado — a área de transferência será limpa em 45s",
|
||||
"appx_copy": "Copiar",
|
||||
"appx_could_not_start_restore": "Não foi possível iniciar a restauração",
|
||||
"appx_create_failed_prefix": "Falha na criação: ",
|
||||
"appx_creating_your_wallet": "Criando sua carteira…",
|
||||
"appx_daemon_error": "Erro do Daemon",
|
||||
"appx_daemon_reinstall_in_progress": "A reinstalação do daemon já está em andamento.",
|
||||
"appx_disconnecting": "Desconectando...",
|
||||
"appx_done": "Concluído",
|
||||
"appx_dragonxd_output": "saída do dragonxd",
|
||||
"appx_encrypting_wallet": "Criptografando a carteira...",
|
||||
"appx_fullnode_lifecycle_unavailable_lite": "As ações de ciclo de vida do nó completo não estão disponíveis na versão lite",
|
||||
"appx_installing_bundled_daemon": "Instalando o daemon incluído — o nó vai parar, atualizar e reiniciar...",
|
||||
"appx_invalid_payment_uri_prefix": "URI de pagamento inválida: ",
|
||||
"appx_ive_written_it_down": "Já anotei",
|
||||
"appx_keep_node_running_and_quit": "Manter o nó em execução e sair",
|
||||
"appx_last_block_n": "Último bloco: %d",
|
||||
"appx_last_used_wallet_not_found_prefix": "Seu último arquivo de carteira usado (",
|
||||
"appx_last_used_wallet_not_found_suffix": ") não foi encontrado — a carteira padrão foi aberta em seu lugar. Se você o moveu, restaure-o e volte a ele pela lista de carteiras.",
|
||||
"appx_low_spec_mode_disabled": "Modo de baixo desempenho desativado",
|
||||
"appx_low_spec_mode_enabled": "Modo de baixo desempenho ativado",
|
||||
"appx_miner_stopped_prefix": "Minerador parado: ",
|
||||
"appx_miner_stopped_unexpectedly": "O minerador parou inesperadamente.",
|
||||
"appx_n_min_n_sec": "%d min %d s",
|
||||
"appx_n_seconds": "%d segundos",
|
||||
"appx_no_bundled_daemon_to_install": "Esta versão não tem daemon incluído para instalar",
|
||||
"appx_no_embedded_daemon_to_install": "Esta versão não tem daemon embutido para instalar",
|
||||
"appx_node_busy_restarting": "O nó está ocupado reiniciando — tente novamente em instantes.",
|
||||
"appx_node_rebuilding_witness_cache": "O nó está reconstruindo seu cache de testemunhas",
|
||||
"appx_not_next_word": " — essa não é a próxima palavra",
|
||||
"appx_payment_request_loaded": "Solicitação de pagamento carregada",
|
||||
"appx_pool_miner_connected_and_hashing": "Minerador de pool conectado e processando hashes.",
|
||||
"appx_progress_n_of_n": "Progresso: %d / %d",
|
||||
"appx_rebuilding_sapling_note_witnesses": "Reconstruindo testemunhas de notas Sapling…",
|
||||
"appx_rebuilding_witness_cache_blocks_left": "Reconstruindo cache de testemunhas %.0f%% — %d blocos restantes",
|
||||
"appx_rebuilding_witness_cache_pct": "Reconstruindo cache de testemunhas %.0f%%",
|
||||
"appx_recovery_phrase_word_count": "A frase de recuperação deve ter 24 palavras — você tem %d.",
|
||||
"appx_restarting_daemon_rescan_flag": "Reiniciando o daemon com a flag -rescan...",
|
||||
"appx_restarting_daemon_zapwallettxes": "Reiniciando o daemon com -zapwallettxes=2 (reparo da carteira)...",
|
||||
"appx_restoring_your_wallet": "Restaurando sua carteira…",
|
||||
"appx_seed_backup_warning": "Estas 24 palavras são a ÚNICA forma de restaurar sua carteira. Anote-as na ordem, guarde-as offline e nunca as compartilhe. Se perdê-las, seus fundos desaparecem para sempre.",
|
||||
"appx_seed_not_backed_up_warning": "Você não fez o backup da sua semente — os fundos podem ser perdidos. Pular mesmo assim?",
|
||||
"appx_sending_stop_command_to_daemon": "Enviando comando de parada ao daemon...",
|
||||
"appx_setting_initial_sapling_witnesses": "Definindo testemunhas Sapling iniciais %.0f%%",
|
||||
"appx_shutdown_complete": "Encerramento concluído",
|
||||
"appx_simple_background_disabled": "Fundo simples desativado",
|
||||
"appx_simple_background_enabled": "Fundo simples ativado",
|
||||
"appx_skip": "Pular",
|
||||
"appx_skip_anyway": "Pular mesmo assim",
|
||||
"appx_still_status_prefix": "Ainda \"",
|
||||
"appx_still_status_suffix": "\" — forçar o encerramento agora pode corromper os dados da chain.",
|
||||
"appx_stop_anyway_and_quit": "Parar mesmo assim e sair",
|
||||
"appx_stopping_daemon_deleting_blockchain": "Parando o daemon e excluindo os dados da blockchain...",
|
||||
"appx_stopping_node_discards_rebuild": "Parar o nó agora descarta a reconstrução em andamento e a reinicia (vários minutos) na próxima vez que você abrir a carteira. Em vez disso, você pode manter o nó em execução.",
|
||||
"appx_stopping_pool_miner": "Parando o minerador de pool...",
|
||||
"appx_syncing_pct_block_n_of_n": "Sincronizando %.1f%% — Bloco %d / %d",
|
||||
"appx_tap_words_in_order": "Toque nas palavras na ordem correta para confirmar que você as salvou.",
|
||||
"appx_theme_effects_disabled": "Efeitos de tema desativados",
|
||||
"appx_theme_effects_enabled": "Efeitos de tema ativados",
|
||||
"appx_theme_prefix": "Tema: ",
|
||||
"appx_use_settings_restart_daemon_hint": "Use Configurações > Reiniciar Daemon para tentar novamente",
|
||||
"appx_waiting_for_daemon_to_encrypt_wallet": "Aguardando o daemon criptografar a carteira...",
|
||||
"appx_wallet_created_and_backed_up": "Carteira criada e com backup feito.",
|
||||
"appx_wallet_open_failed_prefix": "Falha ao abrir a carteira: ",
|
||||
"auto_shield": "Auto-blindar mineração",
|
||||
"av_intro": "Softwares de mineração costumam ser sinalizados como potencialmente indesejados. Siga estes passos para habilitar a mineração em pool:",
|
||||
"av_open_security": "Abrir Segurança do Windows",
|
||||
@@ -100,6 +174,17 @@
|
||||
"balance_shielded_fmt": "Blindado: %.8f",
|
||||
"balance_syncing_pct": "Sincronizando %.1f%%",
|
||||
"balance_transparent_fmt": "Transparente: %.8f",
|
||||
"baltab_market": "Mercado",
|
||||
"baltab_market_price_4dp": "Mercado: $%.4f",
|
||||
"baltab_market_price_8dp": "Mercado: $%.8f",
|
||||
"baltab_pct_change_24h": "%s%.1f%% 24h",
|
||||
"baltab_pct_of_total_zaddr": "%.0f%% do total · %d Z-addr",
|
||||
"baltab_shielded": "Blindado",
|
||||
"baltab_shielded_amount": "Blindado %.8f",
|
||||
"baltab_t_addresses_count": "%d T-addresses",
|
||||
"baltab_total_balance": "Saldo Total",
|
||||
"baltab_transparent": "Transparente",
|
||||
"baltab_transparent_amount": "Transparente %.8f",
|
||||
"ban": "Banir",
|
||||
"banned_peers": "Pares Banidos",
|
||||
"block": "Bloco",
|
||||
@@ -414,6 +499,7 @@
|
||||
"contacts_shape_square": "Quadrado",
|
||||
"contacts_shape_tab": "Aba",
|
||||
"copied": "Copiado!",
|
||||
"copied_to_clipboard": "Copiado para a área de transferência",
|
||||
"copy": "Copiar",
|
||||
"copy_address": "Copiar Endereço Completo",
|
||||
"copy_error": "Copiar Erro",
|
||||
@@ -593,6 +679,63 @@
|
||||
"general": "Geral",
|
||||
"generating": "Gerando",
|
||||
"go_to_receive": "Ir para Receber",
|
||||
"grpa_current_block_paren": "(Atual: %d)",
|
||||
"grpa_days_ago": "há %lld dias",
|
||||
"grpa_dbg_addrman": "Rastreamento e gerenciamento de endereços de pares",
|
||||
"grpa_dbg_alert": "Mensagens do sistema de alertas",
|
||||
"grpa_dbg_bench": "Medições de tempo de benchmark das operações",
|
||||
"grpa_dbg_coindb": "Operações de leitura/gravação do banco de dados de moedas",
|
||||
"grpa_dbg_db": "Operações do Berkeley DB",
|
||||
"grpa_dbg_estimatefee": "Algoritmo de estimativa de taxa",
|
||||
"grpa_dbg_http": "Atividade do servidor RPC HTTP",
|
||||
"grpa_dbg_libevent": "Biblioteca de rede Libevent",
|
||||
"grpa_dbg_lock": "Depuração de contenção de bloqueios",
|
||||
"grpa_dbg_mempool": "Atividade do pool de memória de transações",
|
||||
"grpa_dbg_net": "Conexões e mensagens de rede",
|
||||
"grpa_dbg_paymentdisclosure": "Protocolo de divulgação de pagamento",
|
||||
"grpa_dbg_pow": "Atividade de mineração de prova de trabalho",
|
||||
"grpa_dbg_proxy": "Conexões de proxy SOCKS5",
|
||||
"grpa_dbg_prune": "Operações de poda de blocos",
|
||||
"grpa_dbg_rand": "Geração de números aleatórios",
|
||||
"grpa_dbg_reindex": "Progresso da reindexação da blockchain",
|
||||
"grpa_dbg_rpc": "Processamento de comandos RPC",
|
||||
"grpa_dbg_selectcoins": "Seleção de moedas para transações",
|
||||
"grpa_dbg_tor": "Integração com Tor e informações de circuito",
|
||||
"grpa_dbg_zmq": "Sistema de notificações ZeroMQ",
|
||||
"grpa_dbg_zrpc": "Operações RPC blindadas (z-address)",
|
||||
"grpa_enter_private_key_to_import": "Insira uma chave privada para importar.",
|
||||
"grpa_error_prefix": "Erro: ",
|
||||
"grpa_hr_ago": "há %lld h",
|
||||
"grpa_invalid_response_from_daemon": "Resposta inválida do daemon",
|
||||
"grpa_invalid_suffix": " (inválido)",
|
||||
"grpa_min_ago": "há %lld min",
|
||||
"grpa_sec_ago": "há %lld s",
|
||||
"grpa_seed_demo_chat": "Chat de demonstração da semente",
|
||||
"grpa_showing_first_100_of": "... mostrando os primeiros 100 de %d",
|
||||
"grpa_tab_about": "Sobre",
|
||||
"grpa_tab_appearance": "Aparência",
|
||||
"grpa_tab_backup_data": "Backup e Dados",
|
||||
"grpa_tab_chat": "Chat",
|
||||
"grpa_tab_explorer": "Explorer",
|
||||
"grpa_tab_node_security": "Nó e Segurança",
|
||||
"grpa_tab_wallet": "Carteira",
|
||||
"grpa_unexpected_getblockhash_result": "resultado inesperado de getblockhash",
|
||||
"grpb_copy": "Copiar",
|
||||
"grpb_max": "Máx",
|
||||
"grpb_new_badge_suffix": " [NOVO]",
|
||||
"grpb_preview_msg_payment_through": "O pagamento foi concluído? 🙂",
|
||||
"grpb_preview_msg_sending_rest": "Enviando o restante agora 👍",
|
||||
"grpb_preview_msg_yep_confirmed": "Sim — acabei de confirmar ✅",
|
||||
"grpb_selected_suffix": "\n(selecionado)",
|
||||
"grpb_tooltip_address_balance": "%s\nSaldo: %.8f %s%s",
|
||||
"grpb_undo_clear": "Desfazer Limpar",
|
||||
"grpc_benchmark_inconclusive": "Benchmark inconclusivo: nenhuma amostra de taxa de hash foi registrada. Verifique a conexão com a pool e tente novamente.",
|
||||
"grpc_benchmark_takes_secs": "O benchmark leva cerca de %ds e interrompe a mineração. Clique novamente para iniciar.",
|
||||
"grpc_bootstrap_failed": "Falha no bootstrap",
|
||||
"grpc_bootstrap_not_initialized": "Bootstrap não inicializado",
|
||||
"grpc_hashrate_fee": "%s %s%% de taxa",
|
||||
"grpc_key_not_available": "Chave não disponível para este endereço",
|
||||
"grpc_na": "N/D",
|
||||
"height": "Altura",
|
||||
"help": "Ajuda",
|
||||
"hidden_tag": " (oculto)",
|
||||
@@ -1240,6 +1383,45 @@
|
||||
"screenshot_sweep_full": "Varredura completa da interface",
|
||||
"search_icons": "Pesquisar ícones...",
|
||||
"search_placeholder": "Pesquisar...",
|
||||
"sec_changing_passphrase": "Alterando a frase-senha...",
|
||||
"sec_changing_pin": "Alterando o PIN...",
|
||||
"sec_couldnt_lock_wallet": "Não foi possível bloquear a carteira — ela continua desbloqueada. Verifique a conexão com o daemon.",
|
||||
"sec_encrypted_backup_suffix": "\nBackup criptografado: wallet.dat.encrypted.bak",
|
||||
"sec_encrypting_wallet": "Criptografando a carteira...",
|
||||
"sec_encryption_did_not_complete": "A criptografia da carteira não foi concluída — sua carteira NÃO está criptografada. Abra as Configurações para terminar de criptografá-la.",
|
||||
"sec_encryption_failed_prefix": "Falha na criptografia: ",
|
||||
"sec_failed_prefix": "Falhou: ",
|
||||
"sec_failed_to_create_vault": "Falha ao criar o cofre",
|
||||
"sec_importing_keys_rescanning": "Importando chaves e reescaneando a blockchain — a carteira pode ser usada durante o processo",
|
||||
"sec_incorrect_current_pin": "PIN atual incorreto",
|
||||
"sec_incorrect_passphrase_decrypt": "Frase-senha incorreta",
|
||||
"sec_incorrect_passphrase_pin_setup": "Frase-senha incorreta",
|
||||
"sec_incorrect_pin_remove": "PIN incorreto",
|
||||
"sec_internal_error_change_pin": "Erro interno",
|
||||
"sec_internal_error_remove_pin": "Erro interno",
|
||||
"sec_mode_passphrase": " Frase-senha",
|
||||
"sec_not_connected_to_daemon": "Não conectado ao daemon",
|
||||
"sec_not_connected_to_daemon_pin": "Não conectado ao daemon",
|
||||
"sec_passphrase_changed_successfully": "Frase-senha alterada com sucesso",
|
||||
"sec_pin_changed_successfully": "PIN alterado com sucesso",
|
||||
"sec_pin_removed": "PIN removido",
|
||||
"sec_pin_set_successfully": "PIN definido com sucesso",
|
||||
"sec_restart_daemon_for_encryption": "Reinicie o daemon para que a criptografia entre em vigor.",
|
||||
"sec_too_many_attempts_wait": "Tentativas em excesso. Aguarde %.0f segundos...",
|
||||
"sec_total_elapsed_fmt": "Tempo total: %dm %02ds",
|
||||
"sec_unlock_button": "Desbloquear",
|
||||
"sec_unlock_failed_prefix": "Falha ao desbloquear: ",
|
||||
"sec_unlocking_fmt": "Desbloqueando%s",
|
||||
"sec_use_passphrase_instead": "Usar frase-senha",
|
||||
"sec_use_pin_instead": "Usar PIN",
|
||||
"sec_verifying_passphrase": "Verificando a frase-senha...",
|
||||
"sec_verifying_pin": "Verificando o PIN...",
|
||||
"sec_wallet_decrypted_all_keys_imported": "Carteira descriptografada com sucesso! Todas as chaves importadas.",
|
||||
"sec_wallet_encrypted_and_pin_set": "Carteira criptografada e PIN definido",
|
||||
"sec_wallet_encrypted_but_pin_vault_failed": "Carteira criptografada, mas o cofre do PIN falhou",
|
||||
"sec_wallet_encrypted_restarting_daemon": "Carteira criptografada. Reiniciando o daemon...",
|
||||
"sec_wallet_encrypted_successfully": "Carteira criptografada com sucesso",
|
||||
"sec_wallet_locked_title": "Carteira Bloqueada",
|
||||
"security": "SEGURANÇA",
|
||||
"seed_backup_button": "Frase de recuperação",
|
||||
"seed_backup_close": "Fechar",
|
||||
@@ -1461,6 +1643,17 @@
|
||||
"sweep_to": "Varrido para:",
|
||||
"sweep_toggle": "Varrer para minha carteira (não manter a chave)",
|
||||
"sweep_tx": "Transação:",
|
||||
"swin_connection_failed": "Falha na conexão: ",
|
||||
"swin_connection_successful": "Conexão bem-sucedida!\nversão do dragonxd: ",
|
||||
"swin_invalid_suffix": " (inválido)",
|
||||
"swin_no_history_file_found": "Nenhum arquivo de histórico encontrado",
|
||||
"swin_rescan_failed": "Falha no reescaneamento: ",
|
||||
"swin_rescan_started_from_block": "Reescaneamento iniciado a partir do bloco ",
|
||||
"swin_rescan_to": " até ",
|
||||
"swin_rpc_client_not_initialized": "Cliente RPC não inicializado",
|
||||
"swin_settings_saved": "Configurações salvas",
|
||||
"swin_theme_list_refreshed": "Lista de temas atualizada",
|
||||
"swin_ztx_history_cleared": "Histórico de transações Z limpo",
|
||||
"switch_corrupt_body": "Esta carteira parece corrompida — o nó não conseguiu abri-la. Restaure de um backup, recrie-a ou tente repará-la.",
|
||||
"switch_corrupt_repair": "Tentar reparar (salvage)",
|
||||
"switch_progress_background": "Continuar em segundo plano",
|
||||
|
||||
Reference in New Issue
Block a user