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/es.json
193
res/lang/es.json
@@ -60,6 +60,80 @@
|
||||
"amount_label": "Cantidad:",
|
||||
"animate_avatars": "Animar avatares",
|
||||
"appearance": "APARIENCIA",
|
||||
"appx_back": "Atrás",
|
||||
"appx_back_up_seed_phrase_title": "Haz una copia de tu frase semilla",
|
||||
"appx_birthday_block_height": "Fecha de creación (altura de bloque): %llu — guárdala también.",
|
||||
"appx_blockchain_data_deleted": "Datos de la cadena de bloques eliminados (%d elementos). El daemon se está reiniciando para volver a sincronizar desde la red.",
|
||||
"appx_blockchain_maintenance_in_progress": "Ya hay una operación de mantenimiento de la cadena de bloques en curso.",
|
||||
"appx_blockchain_rescan_complete": "Reescaneo de la cadena de bloques completado",
|
||||
"appx_bootstrap_complete_reconciling": "Arranque inicial completado; reconciliando tu cartera con los nuevos datos de la cadena.",
|
||||
"appx_cancel": "Cancelar",
|
||||
"appx_cleaning_up": "Limpiando...",
|
||||
"appx_confirm_your_backup": "Confirma tu copia de seguridad",
|
||||
"appx_copied_clipboard_autoclears": "Copiado; el portapapeles se borra automáticamente en 45 s",
|
||||
"appx_copy": "Copiar",
|
||||
"appx_could_not_start_restore": "No se pudo iniciar la restauración",
|
||||
"appx_create_failed_prefix": "Error al crear: ",
|
||||
"appx_creating_your_wallet": "Creando tu cartera…",
|
||||
"appx_daemon_error": "Error del daemon",
|
||||
"appx_daemon_reinstall_in_progress": "La reinstalación del daemon ya está en curso.",
|
||||
"appx_disconnecting": "Desconectando...",
|
||||
"appx_done": "Listo",
|
||||
"appx_dragonxd_output": "Salida de dragonxd",
|
||||
"appx_encrypting_wallet": "Cifrando la cartera...",
|
||||
"appx_fullnode_lifecycle_unavailable_lite": "Las acciones de ciclo de vida del nodo completo no están disponibles en la versión lite",
|
||||
"appx_installing_bundled_daemon": "Instalando el daemon incluido; el nodo se detendrá, se actualizará y se reiniciará...",
|
||||
"appx_invalid_payment_uri_prefix": "URI de pago no válida: ",
|
||||
"appx_ive_written_it_down": "Ya la anoté",
|
||||
"appx_keep_node_running_and_quit": "Mantener el nodo y salir",
|
||||
"appx_last_block_n": "Último bloque: %d",
|
||||
"appx_last_used_wallet_not_found_prefix": "Tu último archivo de cartera usado (",
|
||||
"appx_last_used_wallet_not_found_suffix": ") no se encontró; se abrió la cartera predeterminada en su lugar. Si lo moviste, restáuralo y vuelve a él desde la lista de carteras.",
|
||||
"appx_low_spec_mode_disabled": "Modo de bajos recursos desactivado",
|
||||
"appx_low_spec_mode_enabled": "Modo de bajos recursos activado",
|
||||
"appx_miner_stopped_prefix": "Minero detenido: ",
|
||||
"appx_miner_stopped_unexpectedly": "El minero se detuvo inesperadamente.",
|
||||
"appx_n_min_n_sec": "%d min %d s",
|
||||
"appx_n_seconds": "%d segundos",
|
||||
"appx_no_bundled_daemon_to_install": "Esta versión no incluye un daemon para instalar",
|
||||
"appx_no_embedded_daemon_to_install": "Esta versión no incluye un daemon integrado para instalar",
|
||||
"appx_node_busy_restarting": "El nodo está ocupado reiniciándose; inténtalo de nuevo en un momento.",
|
||||
"appx_node_rebuilding_witness_cache": "El nodo está reconstruyendo su caché de testigos",
|
||||
"appx_not_next_word": " — esa no es la siguiente palabra",
|
||||
"appx_payment_request_loaded": "Solicitud de pago cargada",
|
||||
"appx_pool_miner_connected_and_hashing": "Minero de pool conectado y calculando hashes.",
|
||||
"appx_progress_n_of_n": "Progreso: %d / %d",
|
||||
"appx_rebuilding_sapling_note_witnesses": "Reconstruyendo testigos de notas Sapling…",
|
||||
"appx_rebuilding_witness_cache_blocks_left": "Reconstruyendo la caché de testigos %.0f%% — %d bloques restantes",
|
||||
"appx_rebuilding_witness_cache_pct": "Reconstruyendo la caché de testigos %.0f%%",
|
||||
"appx_recovery_phrase_word_count": "La frase de recuperación debe tener 24 palabras; tú tienes %d.",
|
||||
"appx_restarting_daemon_rescan_flag": "Reiniciando el daemon con la opción -rescan...",
|
||||
"appx_restarting_daemon_zapwallettxes": "Reiniciando el daemon con -zapwallettxes=2 (reparación de cartera)...",
|
||||
"appx_restoring_your_wallet": "Restaurando tu cartera…",
|
||||
"appx_seed_backup_warning": "Estas 24 palabras son la ÚNICA forma de restaurar tu cartera. Anótalas en orden, guárdalas sin conexión y nunca las compartas. Si las pierdes, tus fondos se perderán para siempre.",
|
||||
"appx_seed_not_backed_up_warning": "No has hecho una copia de tu semilla; podrías perder tus fondos. ¿Omitir de todos modos?",
|
||||
"appx_sending_stop_command_to_daemon": "Enviando el comando de parada al daemon...",
|
||||
"appx_setting_initial_sapling_witnesses": "Estableciendo testigos Sapling iniciales %.0f%%",
|
||||
"appx_shutdown_complete": "Apagado completado",
|
||||
"appx_simple_background_disabled": "Fondo simple desactivado",
|
||||
"appx_simple_background_enabled": "Fondo simple activado",
|
||||
"appx_skip": "Omitir",
|
||||
"appx_skip_anyway": "Omitir de todos modos",
|
||||
"appx_still_status_prefix": "Aún \"",
|
||||
"appx_still_status_suffix": "\" — forzar el cierre ahora podría dañar los datos de la cadena.",
|
||||
"appx_stop_anyway_and_quit": "Detener de todos modos y salir",
|
||||
"appx_stopping_daemon_deleting_blockchain": "Deteniendo el daemon y eliminando los datos de la cadena de bloques...",
|
||||
"appx_stopping_node_discards_rebuild": "Detener el nodo ahora descarta la reconstrucción en curso y la reinicia (varios minutos) la próxima vez que abras la cartera. También puedes dejar el nodo en ejecución.",
|
||||
"appx_stopping_pool_miner": "Deteniendo el minero de pool...",
|
||||
"appx_syncing_pct_block_n_of_n": "Sincronizando %.1f%% — Bloque %d / %d",
|
||||
"appx_tap_words_in_order": "Toca las palabras en el orden correcto para confirmar que las guardaste.",
|
||||
"appx_theme_effects_disabled": "Efectos de tema desactivados",
|
||||
"appx_theme_effects_enabled": "Efectos de tema activados",
|
||||
"appx_theme_prefix": "Tema: ",
|
||||
"appx_use_settings_restart_daemon_hint": "Usa Ajustes > Reiniciar daemon para intentarlo de nuevo",
|
||||
"appx_waiting_for_daemon_to_encrypt_wallet": "Esperando a que el daemon cifre la cartera...",
|
||||
"appx_wallet_created_and_backed_up": "Cartera creada y respaldada.",
|
||||
"appx_wallet_open_failed_prefix": "Error al abrir la cartera: ",
|
||||
"auto_shield": "Auto-proteger minería",
|
||||
"av_intro": "El software de minería suele marcarse como potencialmente no deseado. Sigue estos pasos para habilitar la minería en pool:",
|
||||
"av_open_security": "Abrir Seguridad de Windows",
|
||||
@@ -100,6 +174,17 @@
|
||||
"balance_shielded_fmt": "Protegido: %.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%% del 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": "Bloquear",
|
||||
"banned_peers": "Nodos Bloqueados",
|
||||
"block": "Bloque",
|
||||
@@ -414,6 +499,7 @@
|
||||
"contacts_shape_square": "Cuadrado",
|
||||
"contacts_shape_tab": "Pestaña",
|
||||
"copied": "¡Copiado!",
|
||||
"copied_to_clipboard": "Copiado al portapapeles",
|
||||
"copy": "Copiar",
|
||||
"copy_address": "Copiar Dirección Completa",
|
||||
"copy_error": "Copiar Error",
|
||||
@@ -593,6 +679,63 @@
|
||||
"general": "General",
|
||||
"generating": "Generando",
|
||||
"go_to_receive": "Ir a Recibir",
|
||||
"grpa_current_block_paren": "(Actual: %d)",
|
||||
"grpa_days_ago": "hace %lld días",
|
||||
"grpa_dbg_addrman": "Seguimiento y gestión de direcciones de pares",
|
||||
"grpa_dbg_alert": "Mensajes del sistema de alertas",
|
||||
"grpa_dbg_bench": "Tiempos de referencia de las operaciones",
|
||||
"grpa_dbg_coindb": "Operaciones de lectura/escritura de la base de datos de monedas",
|
||||
"grpa_dbg_db": "Operaciones de Berkeley DB",
|
||||
"grpa_dbg_estimatefee": "Algoritmo de estimación de comisiones",
|
||||
"grpa_dbg_http": "Actividad del servidor RPC HTTP",
|
||||
"grpa_dbg_libevent": "Biblioteca de red Libevent",
|
||||
"grpa_dbg_lock": "Depuración de contención de bloqueos",
|
||||
"grpa_dbg_mempool": "Actividad del pool de memoria de transacciones",
|
||||
"grpa_dbg_net": "Conexiones y mensajes de red",
|
||||
"grpa_dbg_paymentdisclosure": "Protocolo de divulgación de pagos",
|
||||
"grpa_dbg_pow": "Actividad de minería por prueba de trabajo",
|
||||
"grpa_dbg_proxy": "Conexiones de proxy SOCKS5",
|
||||
"grpa_dbg_prune": "Operaciones de poda de bloques",
|
||||
"grpa_dbg_rand": "Generación de números aleatorios",
|
||||
"grpa_dbg_reindex": "Progreso de reindexación de la cadena de bloques",
|
||||
"grpa_dbg_rpc": "Procesamiento de comandos RPC",
|
||||
"grpa_dbg_selectcoins": "Selección de monedas para transacciones",
|
||||
"grpa_dbg_tor": "Integración de Tor e información de circuitos",
|
||||
"grpa_dbg_zmq": "Sistema de notificaciones ZeroMQ",
|
||||
"grpa_dbg_zrpc": "Operaciones RPC blindadas (z-addr)",
|
||||
"grpa_enter_private_key_to_import": "Introduce una clave privada para importar.",
|
||||
"grpa_error_prefix": "Error: ",
|
||||
"grpa_hr_ago": "hace %lld h",
|
||||
"grpa_invalid_response_from_daemon": "Respuesta no válida del daemon",
|
||||
"grpa_invalid_suffix": " (no válido)",
|
||||
"grpa_min_ago": "hace %lld min",
|
||||
"grpa_sec_ago": "hace %lld s",
|
||||
"grpa_seed_demo_chat": "Chat de demostración con semilla",
|
||||
"grpa_showing_first_100_of": "... mostrando los primeros 100 de %d",
|
||||
"grpa_tab_about": "Acerca de",
|
||||
"grpa_tab_appearance": "Apariencia",
|
||||
"grpa_tab_backup_data": "Copia de seguridad y datos",
|
||||
"grpa_tab_chat": "Chat",
|
||||
"grpa_tab_explorer": "Explorador",
|
||||
"grpa_tab_node_security": "Nodo y seguridad",
|
||||
"grpa_tab_wallet": "Cartera",
|
||||
"grpa_unexpected_getblockhash_result": "resultado inesperado de getblockhash",
|
||||
"grpb_copy": "Copiar",
|
||||
"grpb_max": "Máx.",
|
||||
"grpb_new_badge_suffix": " [NUEVO]",
|
||||
"grpb_preview_msg_payment_through": "¿Se realizó el pago? 🙂",
|
||||
"grpb_preview_msg_sending_rest": "Enviando el resto ahora 👍",
|
||||
"grpb_preview_msg_yep_confirmed": "Sí — acabo de confirmarlo ✅",
|
||||
"grpb_selected_suffix": "\n(seleccionado)",
|
||||
"grpb_tooltip_address_balance": "%s\nSaldo: %.8f %s%s",
|
||||
"grpb_undo_clear": "Deshacer borrado",
|
||||
"grpc_benchmark_inconclusive": "Prueba de rendimiento no concluyente: no se registraron muestras de tasa de hash. Comprueba la conexión con el pool e inténtalo de nuevo.",
|
||||
"grpc_benchmark_takes_secs": "La prueba de rendimiento tarda ~%ds e interrumpe la minería. Haz clic de nuevo para empezar.",
|
||||
"grpc_bootstrap_failed": "Error en el arranque inicial",
|
||||
"grpc_bootstrap_not_initialized": "Arranque inicial no inicializado",
|
||||
"grpc_hashrate_fee": "%s %s%% de comisión",
|
||||
"grpc_key_not_available": "Clave no disponible para esta dirección",
|
||||
"grpc_na": "N/D",
|
||||
"height": "Altura",
|
||||
"help": "Ayuda",
|
||||
"hidden_tag": " (oculto)",
|
||||
@@ -1240,6 +1383,45 @@
|
||||
"screenshot_sweep_full": "Barrido completo de la interfaz",
|
||||
"search_icons": "Buscar iconos...",
|
||||
"search_placeholder": "Buscar...",
|
||||
"sec_changing_passphrase": "Cambiando la frase de contraseña...",
|
||||
"sec_changing_pin": "Cambiando el PIN...",
|
||||
"sec_couldnt_lock_wallet": "No se pudo bloquear la cartera; sigue desbloqueada. Comprueba la conexión con el daemon.",
|
||||
"sec_encrypted_backup_suffix": "\nCopia de seguridad cifrada: wallet.dat.encrypted.bak",
|
||||
"sec_encrypting_wallet": "Cifrando la cartera...",
|
||||
"sec_encryption_did_not_complete": "El cifrado de la cartera no se completó; tu cartera NO está cifrada. Abre Ajustes para terminar de cifrarla.",
|
||||
"sec_encryption_failed_prefix": "Error de cifrado: ",
|
||||
"sec_failed_prefix": "Error: ",
|
||||
"sec_failed_to_create_vault": "No se pudo crear la bóveda",
|
||||
"sec_importing_keys_rescanning": "Importando claves y volviendo a escanear la cadena de bloques; la cartera se puede usar mientras tanto",
|
||||
"sec_incorrect_current_pin": "PIN actual incorrecto",
|
||||
"sec_incorrect_passphrase_decrypt": "Frase de contraseña incorrecta",
|
||||
"sec_incorrect_passphrase_pin_setup": "Frase de contraseña incorrecta",
|
||||
"sec_incorrect_pin_remove": "PIN incorrecto",
|
||||
"sec_internal_error_change_pin": "Error interno",
|
||||
"sec_internal_error_remove_pin": "Error interno",
|
||||
"sec_mode_passphrase": " Frase de contraseña",
|
||||
"sec_not_connected_to_daemon": "Sin conexión con el daemon",
|
||||
"sec_not_connected_to_daemon_pin": "Sin conexión con el daemon",
|
||||
"sec_passphrase_changed_successfully": "Frase de contraseña cambiada correctamente",
|
||||
"sec_pin_changed_successfully": "PIN cambiado correctamente",
|
||||
"sec_pin_removed": "PIN eliminado",
|
||||
"sec_pin_set_successfully": "PIN configurado correctamente",
|
||||
"sec_restart_daemon_for_encryption": "Reinicia el daemon para que el cifrado surta efecto.",
|
||||
"sec_too_many_attempts_wait": "Demasiados intentos. Espera %.0f segundos...",
|
||||
"sec_total_elapsed_fmt": "Tiempo total: %dm %02ds",
|
||||
"sec_unlock_button": "Desbloquear",
|
||||
"sec_unlock_failed_prefix": "Error al desbloquear: ",
|
||||
"sec_unlocking_fmt": "Desbloqueando%s",
|
||||
"sec_use_passphrase_instead": "Usar frase de contraseña en su lugar",
|
||||
"sec_use_pin_instead": "Usar PIN en su lugar",
|
||||
"sec_verifying_passphrase": "Verificando la frase de contraseña...",
|
||||
"sec_verifying_pin": "Verificando el PIN...",
|
||||
"sec_wallet_decrypted_all_keys_imported": "¡Cartera descifrada correctamente! Todas las claves importadas.",
|
||||
"sec_wallet_encrypted_and_pin_set": "Cartera cifrada y PIN configurado",
|
||||
"sec_wallet_encrypted_but_pin_vault_failed": "Cartera cifrada, pero falló la bóveda del PIN",
|
||||
"sec_wallet_encrypted_restarting_daemon": "Cartera cifrada. Reiniciando el daemon...",
|
||||
"sec_wallet_encrypted_successfully": "Cartera cifrada correctamente",
|
||||
"sec_wallet_locked_title": "Cartera bloqueada",
|
||||
"security": "SEGURIDAD",
|
||||
"seed_backup_button": "Frase de recuperación",
|
||||
"seed_backup_close": "Cerrar",
|
||||
@@ -1461,6 +1643,17 @@
|
||||
"sweep_to": "Barrido a:",
|
||||
"sweep_toggle": "Barrer a mi monedero (no conservar la clave)",
|
||||
"sweep_tx": "Transacción:",
|
||||
"swin_connection_failed": "Error de conexión: ",
|
||||
"swin_connection_successful": "¡Conexión correcta!\nVersión de dragonxd: ",
|
||||
"swin_invalid_suffix": " (no válido)",
|
||||
"swin_no_history_file_found": "No se encontró ningún archivo de historial",
|
||||
"swin_rescan_failed": "Error en el reescaneo: ",
|
||||
"swin_rescan_started_from_block": "Reescaneo iniciado desde el bloque ",
|
||||
"swin_rescan_to": " hasta ",
|
||||
"swin_rpc_client_not_initialized": "Cliente RPC no inicializado",
|
||||
"swin_settings_saved": "Ajustes guardados",
|
||||
"swin_theme_list_refreshed": "Lista de temas actualizada",
|
||||
"swin_ztx_history_cleared": "Historial de transacciones Z borrado",
|
||||
"switch_corrupt_body": "Esta cartera parece dañada: el nodo no pudo abrirla. Restáurala desde una copia de seguridad, vuelve a crearla o intenta repararla.",
|
||||
"switch_corrupt_repair": "Intentar reparar (salvage)",
|
||||
"switch_progress_background": "Continuar en segundo plano",
|
||||
|
||||
Reference in New Issue
Block a user