#!/usr/bin/env python3
"""Generate complete Spanish (es.json) translations for ObsidianDragon wallet."""
import json

es = {
    # ---- Navigation & Tabs ----
    "overview": "Resumen",
    "balance": "Saldo",
    "send": "Enviar",
    "receive": "Recibir",
    "transactions": "Transacciones",
    "history": "Historial",
    "mining": "Minería",
    "peers": "Nodos",
    "market": "Mercado",
    "settings": "Configuración",
    "console": "Consola",
    "tools": "HERRAMIENTAS",
    "advanced": "AVANZADO",
    "network": "Red",

    # ---- Settings sections ----
    "appearance": "APARIENCIA",
    "wallet": "CARTERA",
    "node_security": "NODO Y SEGURIDAD",
    "node": "NODO",
    "security": "SEGURIDAD",
    "explorer": "EXPLORADOR",
    "about": "Acerca de",
    "backup_data": "RESPALDO Y DATOS",
    "general": "General",

    # ---- Settings options ----
    "balance_layout": "Diseño de Saldo",
    "low_spec_mode": "Modo bajo rendimiento",
    "simple_background": "Fondo simple",
    "console_scanline": "Líneas de consola",
    "theme_effects": "Efectos de tema",
    "language": "Idioma",
    "save_z_transactions": "Guardar Z-tx en lista",
    "allow_custom_fees": "Permitir comisiones personalizadas",
    "custom_fees": "Comisiones personalizadas",
    "auto_shield": "Auto-proteger minería",
    "fetch_prices": "Obtener precios",
    "use_tor": "Usar Tor",
    "font_scale": "Escala de fuente",
    "keep_daemon": "Mantener daemon activo",
    "stop_external": "Detener daemon externo",
    "mine_when_idle": "Minar en reposo",
    "verbose_logging": "Registro detallado",
    "acrylic": "Acrílico",
    "noise": "Ruido",
    "ui_opacity": "Opacidad de UI",
    "window_opacity": "Opacidad de ventana",

    # ---- Settings buttons ----
    "save_settings": "Guardar Configuración",
    "reset_to_defaults": "Restablecer Valores",
    "report_bug": "Reportar Error",
    "website": "Sitio Web",
    "setup_wizard": "Asistente de Configuración",
    "rescan": "Re-escanear",
    "test_connection": "Probar",

    # ---- Settings fields ----
    "rpc_host": "Host RPC",
    "rpc_port": "Puerto",
    "rpc_user": "Usuario",
    "rpc_pass": "Contraseña",
    "transaction_url": "URL de Transacción",
    "address_url": "URL de Dirección",
    "block_explorer": "Explorador de Bloques",

    # ---- Common actions ----
    "add": "Agregar",
    "edit": "Editar",
    "delete": "Eliminar",
    "cancel": "Cancelar",
    "close": "Cerrar",
    "clear": "Limpiar",
    "copy": "Copiar",
    "paste": "Pegar",
    "save": "Guardar",
    "refresh": "Actualizar",
    "export": "Exportar",
    "import": "Importar",
    "show": "Mostrar",
    "hide": "Ocultar",
    "share": "Compartir",
    "confirm_and_send": "Confirmar y Enviar",
    "confirm_send": "Confirmar Envío",
    "confirm_transaction": "Confirmar Transacción",
    "review_send": "Revisar Envío",
    "copy_address": "Copiar Dirección Completa",
    "copy_to_clipboard": "Copiar al Portapapeles",
    "paste_from_clipboard": "Pegar del Portapapeles",
    "copy_txid": "Copiar TxID",
    "copy_uri": "Copiar URI",
    "copy_error": "Copiar Error",
    "search_placeholder": "Buscar...",
    "exit": "Salir",
    "help": "Ayuda",
    "file": "Archivo",
    "display": "Pantalla",
    "new": "+ Nuevo",
    "dismiss": "Descartar",
    "keep": "Mantener",
    "yes_clear": "Sí, Limpiar",
    "undo_clear": "Deshacer Limpieza",

    # ---- Common labels ----
    "address": "Dirección",
    "address_label": "Dirección:",
    "amount": "Cantidad",
    "amount_label": "Cantidad:",
    "date": "Fecha",
    "date_label": "Fecha:",
    "fee": "Comisión",
    "fee_label": "Comisión:",
    "label": "Etiqueta:",
    "memo": "Memo (opcional, encriptado)",
    "memo_label": "Memo:",
    "notes": "Notas",
    "notes_optional": "Notas (opcional):",
    "total": "Total",
    "from": "Desde",
    "to_upper": "PARA",
    "from_upper": "DESDE",
    "max": "Máximo",
    "characters": "caracteres",
    "ping": "Ping",
    "height": "Altura",
    "block": "Bloque",
    "available": "Disponible",
    "unknown": "Desconocido",
    "loading": "Cargando...",
    "validating": "Validando...",
    "warning_upper": "¡ADVERTENCIA!",
    "output_filename": "Nombre del archivo:",
    "file_save_location": "El archivo se guardará en: ~/.config/ObsidianDragon/",
    "light": "Claro",
    "dark": "Oscuro",

    # ---- Status ----
    "connected": "Conectado",
    "disconnected": "Desconectado",
    "connecting": "Conectando...",
    "confirmed": "Confirmada",
    "confirmations": "Confirmaciones",
    "not_connected_to_daemon": "No conectado al daemon",
    "waiting_for_daemon": "Esperando conexión al daemon...",
    "blockchain_syncing": "Sincronizando blockchain (%.1f%%)... Los saldos pueden ser inexactos.",
    "error": "Error",
    "success": "Éxito",
    "warning": "Advertencia",

    # ---- Time ----
    "time_days_ago": "hace %d días",
    "time_hours_ago": "hace %d horas",
    "time_minutes_ago": "hace %d minutos",
    "time_seconds_ago": "hace %d segundos",

    # ---- Transaction types/filters ----
    "sent_type": "Enviado",
    "sent_filter": "Enviado",
    "sent_upper": "ENVIADO",
    "received_label": "Recibido",
    "received_filter": "Recibido",
    "received_upper": "RECIBIDO",
    "mined_type": "Minado",
    "mined_filter": "Minado",
    "mined_upper": "MINADO",
    "immature_type": "Inmaduro",
    "mature": "Maduro",
    "recv_type": "Recibido",
    "all_filter": "Todos",
    "shielded_type": "Protegido",

    # ---- Balance / Overview ----
    "address_upper": "DIRECCIÓN",
    "address_details": "Detalles de Dirección",
    "amount_details": "DETALLES DE CANTIDAD",
    "transactions_upper": "TRANSACCIONES",
    "addresses_appear_here": "Tus direcciones de recepción aparecerán aquí una vez conectado.",
    "wallet_empty": "Tu cartera está vacía",
    "wallet_empty_hint": "Cambia a Recibir para obtener tu dirección y empezar a recibir fondos.",
    "loading_addresses": "Cargando direcciones...",
    "no_addresses_match": "No hay direcciones que coincidan con el filtro",
    "no_addresses_with_balance": "No hay direcciones con saldo",
    "click_copy_address": "Clic para copiar dirección",
    "click_copy_uri": "Clic para copiar URI",
    "address_copied": "Dirección copiada al portapapeles",
    "about_dragonx": "Acerca de DragonX",
    "dragonx_green": "DragonX (Verde)",

    # ---- Transactions tab ----
    "no_transactions": "No se encontraron transacciones",
    "no_matching": "No hay transacciones coincidentes",
    "showing_transactions": "Mostrando %d\u2013%d de %d transacciones (total: %zu)",
    "conf_count": "%d conf",
    "confirmations_display": "%d confirmaciones  |  %s",
    "txs_count": "%d txs",
    "view_details": "Ver Detalles",
    "full_details": "Detalles Completos",
    "export_csv": "Exportar CSV",
    "transaction_id": "ID DE TRANSACCIÓN",

    # ---- Receive tab ----
    "select_receiving_address": "Seleccionar dirección de recepción...",
    "payment_request": "SOLICITUD DE PAGO",
    "recent_received": "RECIBIDOS RECIENTES",
    "no_recent_receives": "No hay recepciones recientes",
    "qr_unavailable": "QR no disponible",
    "clear_request": "Limpiar Solicitud",
    "clear_form_confirm": "¿Limpiar todos los campos del formulario?",
    "payment_request_copied": "Solicitud de pago copiada",
    "payment_uri_copied": "URI de pago copiada",
    "failed_create_shielded": "Error al crear dirección protegida",
    "failed_create_transparent": "Error al crear dirección transparente",
    "new_shielded_created": "Nueva dirección protegida creada",
    "new_transparent_created": "Nueva dirección transparente creada",

    # ---- Send tab ----
    "send_sending_from": "ENVIANDO DESDE",
    "send_select_source": "Seleccionar dirección de origen...",
    "send_no_balance": "Sin saldo",
    "send_recipient": "DESTINATARIO",
    "send_amount_upper": "CANTIDAD",
    "send_amount": "Cantidad",
    "send_amount_details": "DETALLES DE CANTIDAD",
    "send_fee": "Comisión",
    "send_fee_low": "Baja",
    "send_fee_normal": "Normal",
    "send_fee_high": "Alta",
    "send_network_fee": "COMISIÓN DE RED",
    "send_total": "Total",
    "send_recent_sends": "ENVÍOS RECIENTES",
    "send_no_recent": "No hay envíos recientes",
    "send_clear_fields": "¿Limpiar todos los campos del formulario?",
    "send_yes_clear": "Sí, Limpiar",
    "send_keep": "Mantener",
    "send_form_restored": "Formulario restaurado",
    "send_valid_shielded": "Dirección protegida válida",
    "send_valid_transparent": "Dirección transparente válida",
    "send_exceeds_available": "Excede disponible (%.8f)",
    "send_submitting": "Enviando transacción...",
    "send_tx_sent": "¡Transacción enviada!",
    "send_tx_success": "¡Transacción enviada exitosamente!",
    "send_tx_failed": "Error en la transacción",
    "send_error_prefix": "Error: %s",
    "send_error_copied": "Error copiado al portapapeles",
    "send_copy_error": "Copiar Error",
    "send_dismiss": "Descartar",
    "send_txid_copied": "TxID copiado al portapapeles",
    "send_txid_label": "TxID: %s",
    "send_go_to_receive": "Ir a Recibir",
    "send_wallet_empty": "Tu cartera está vacía",
    "send_switch_to_receive": "Cambia a Recibir para obtener tu dirección y empezar a recibir fondos.",
    "send_tooltip_select_source": "Selecciona una dirección de origen primero",
    "send_tooltip_invalid_address": "Ingresa una dirección de destinatario válida",
    "send_tooltip_enter_amount": "Ingresa una cantidad a enviar",
    "send_tooltip_exceeds_balance": "La cantidad excede el saldo disponible",
    "send_tooltip_not_connected": "No conectado al daemon",
    "send_tooltip_syncing": "Espera a que se sincronice el blockchain",
    "send_tooltip_in_progress": "Transacción ya en progreso",
    "sending_from": "ENVIANDO DESDE",
    "select_source_address": "Seleccionar dirección de origen...",
    "recipient": "DESTINATARIO",
    "memo_optional": "MEMO (OPCIONAL)",
    "memo_upper": "MEMO",
    "network_fee": "COMISIÓN DE RED",
    "fee_low": "Baja",
    "fee_normal": "Normal",
    "fee_high": "Alta",
    "recent_sends": "ENVÍOS RECIENTES",
    "no_recent_sends": "No hay envíos recientes",
    "shielded_to": "PROTEGIDA PARA",
    "submitting_transaction": "Enviando transacción...",
    "transaction_sent_msg": "¡Transacción enviada!",
    "amount_exceeds_balance": "La cantidad excede el saldo",

    # ---- Mining tab ----
    "mining_solo": "Solo",
    "mining_pool": "Pool",
    "mining_pool_url": "URL del Pool",
    "mining_pool_hashrate": "Hashrate del Pool",
    "mining_local_hashrate": "Hashrate Local",
    "mining_payout_address": "Dirección de Pago",
    "mining_payout_tooltip": "Dirección para recibir recompensas de minería",
    "mining_mine": "Minar",
    "mining_stop": "Detener",
    "mining_starting": "Iniciando...",
    "mining_stopping": "Deteniendo...",
    "mining_active": "Activo",
    "mining_connected": "Conectado",
    "mining_connecting": "Conectando...",
    "mining_network": "Red",
    "mining_shares": "Shares",
    "mining_uptime": "Tiempo activo",
    "mining_mining_addr": "Dir. Minería",
    "mining_est_block": "Bloque Est.",
    "mining_est_daily": "Diario Est.",
    "mining_today": "Hoy",
    "mining_yesterday": "Ayer",
    "mining_all_time": "Todo el Tiempo",
    "mining_recent_blocks": "BLOQUES RECIENTES",
    "mining_recent_payouts": "PAGOS DE POOL RECIENTES",
    "mining_no_blocks_yet": "Aún no se han encontrado bloques",
    "mining_no_payouts_yet": "Aún no hay pagos del pool",
    "mining_show_chart": "Gráfico",
    "mining_show_log": "Registro",
    "mining_chart_now": "Ahora",
    "mining_chart_start": "Inicio",
    "mining_chart_1m_ago": "hace 1m",
    "mining_chart_5m_ago": "hace 5m",
    "mining_save_pool_url": "Guardar URL del pool",
    "mining_save_payout_address": "Guardar dirección de pago",
    "mining_saved_pools": "Pools Guardados:",
    "mining_saved_addresses": "Direcciones Guardadas:",
    "mining_no_saved_pools": "No hay pools guardados",
    "mining_no_saved_addresses": "No hay direcciones guardadas",
    "mining_already_saved": "URL del pool ya guardada",
    "mining_remove": "Eliminar",
    "mining_reset_defaults": "Restablecer Valores",
    "mining_click": "Clic",
    "mining_to_save": "para guardar",
    "mining_click_copy_address": "Clic para copiar dirección",
    "mining_click_copy_block": "Clic para copiar hash de bloque",
    "mining_click_copy_difficulty": "Clic para copiar dificultad",
    "mining_address_copied": "Dirección de minería copiada",
    "mining_block_copied": "Hash de bloque copiado",
    "mining_difficulty_copied": "Dificultad copiada",
    "mining_open_in_explorer": "Abrir en explorador",
    "mining_starting_tooltip": "El minero está iniciando...",
    "mining_stopping_tooltip": "El minero está deteniéndose...",
    "mining_syncing_tooltip": "El blockchain está sincronizando...",
    "mining_idle_on_tooltip": "Desactivar minería en reposo",
    "mining_idle_off_tooltip": "Activar minería en reposo",
    "mining_stop_solo_for_pool": "Detener minería solo antes de iniciar minería en pool",
    "mining_stop_solo_for_pool_settings": "Detener minería solo para cambiar configuración del pool",
    "mining_filter_all": "Todos",
    "mining_filter_tip_all": "Mostrar todas las ganancias",
    "mining_filter_tip_solo": "Mostrar solo ganancias solo",
    "mining_filter_tip_pool": "Mostrar solo ganancias del pool",
    "local_hashrate": "Tasa Hash Local",
    "est_time_to_block": "Tiempo Est. al Bloque",
    "difficulty": "Dificultad",
    "current_price": "Precio Actual",
    "market_cap": "Cap. de Mercado",

    # ---- Peers tab ----
    "peers_blockchain": "BLOCKCHAIN",
    "peers_blocks": "Bloques",
    "peers_connected": "Conectados",
    "peers_connected_count": "Conectados: %d",
    "peers_banned": "Bloqueados",
    "peers_banned_count": "Bloqueados: %d",
    "peers_upper": "NODOS",
    "peers_avg_ping": "Ping Prom.",
    "peers_best_block": "Mejor Bloque",
    "peers_hashrate": "Hashrate",
    "peers_longest": "Más Larga",
    "peers_longest_chain": "Cadena Más Larga",
    "peers_memory": "Memoria",
    "peers_notarized": "Notarizado",
    "peers_p2p_port": "Puerto P2P",
    "peers_protocol": "Protocolo",
    "peers_version": "Versión",
    "peers_in_out": "Ent/Sal",
    "peers_dir_in": "Ent",
    "peers_dir_out": "Sal",
    "peers_received": "Recibido",
    "peers_sent": "Enviado",
    "peers_refresh": "Actualizar",
    "peers_refresh_tooltip": "Actualizar lista de nodos",
    "peers_refreshing": "Actualizando...",
    "peers_no_connected": "No hay nodos conectados",
    "peers_no_banned": "No hay nodos bloqueados",
    "peers_ban_24h": "Bloquear Nodo 24h",
    "peers_unban": "Desbloquear",
    "peers_clear_all_bans": "Limpiar Todos los Bloqueos",
    "peers_copy_ip": "Copiar IP",
    "peers_click_copy": "Clic para copiar",
    "peers_hash_copied": "Hash copiado",
    "peers_no_tls": "Sin TLS",
    "peers_blocks_left": "%d bloques restantes",
    "peers_ban_score": "Puntuación: %d",
    "peers_tt_id": "ID: %d",
    "peers_tt_sent": "Enviado: %s",
    "peers_tt_received": "Recibido: %s",
    "peers_tt_services": "Servicios: %s",
    "peers_tt_start_height": "Altura Inicial: %d",
    "peers_tt_synced": "Sinc H/B: %d/%d",
    "peers_tt_tls_cipher": "TLS: %s",
    "connected_peers": "Nodos Conectados",
    "banned_peers": "Nodos Bloqueados",
    "ban": "Bloquear",
    "clear_all_bans": "Limpiar Todos los Bloqueos",
    "ip_address": "Dirección IP",

    # ---- Market tab ----
    "market_btc_price": "PRECIO BTC",
    "market_24h_volume": "VOLUMEN 24H",
    "market_portfolio": "PORTAFOLIO",
    "market_pct_shielded": "%.0f%% Protegido",
    "market_attribution": "Datos de precios de NonKYC",
    "market_no_price": "Sin datos de precio",
    "market_no_history": "No hay historial de precios disponible",
    "market_price_unavailable": "Datos de precio no disponibles",
    "market_refresh_price": "Actualizar datos de precio",
    "market_trade_on": "Operar en %s",
    "market_now": "Ahora",
    "market_6h": "6h",
    "market_12h": "12h",
    "market_18h": "18h",
    "market_24h": "24h",
    "24h_change": "Cambio 24h",
    "24h_volume": "Volumen 24h",

    # ---- Console tab ----
    "console_welcome": "Bienvenido a la Consola de ObsidianDragon",
    "console_type_help": "Escribe 'help' para ver los comandos disponibles",
    "console_available_commands": "Comandos disponibles:",
    "console_common_rpc": "Comandos RPC comunes:",
    "console_rpc_reference": "Referencia de Comandos RPC",
    "console_auto_scroll": "Auto-desplazamiento",
    "console_clear": "Limpiar",
    "console_clear_console": "Limpiar Consola",
    "console_cleared": "Consola limpiada",
    "console_commands": "Comandos",
    "console_completions": "Completaciones:",
    "console_tab_completion": "Tab para completar",
    "console_connected": "Conectado al daemon",
    "console_disconnected": "Desconectado del daemon",
    "console_not_connected": "Error: No conectado al daemon",
    "console_no_daemon": "Sin daemon",
    "console_daemon": "Daemon",
    "console_daemon_error": "¡Error del daemon!",
    "console_daemon_started": "Daemon iniciado",
    "console_daemon_stopped": "Daemon detenido",
    "console_errors": "Errores",
    "console_filter_hint": "Filtrar salida...",
    "console_search_commands": "Buscar comandos...",
    "console_copy_all": "Copiar Todo",
    "console_copy_selected": "Copiar",
    "console_select_all": "Seleccionar Todo",
    "console_zoom_in": "Acercar",
    "console_zoom_out": "Alejar",
    "console_show_daemon_output": "Mostrar salida del daemon",
    "console_show_errors_only": "Mostrar solo errores",
    "console_show_rpc_ref": "Mostrar referencia de comandos RPC",
    "console_capturing_output": "Capturando salida del daemon...",
    "console_starting_node": "Iniciando nodo...",
    "console_line_count": "%zu líneas",
    "console_new_lines": "%d nuevas líneas",
    "console_showing_lines": "Mostrando %zu de %zu líneas",
    "console_click_commands": "Clic en los comandos de arriba para insertarlos",
    "console_click_insert": "Clic para insertar",
    "console_click_insert_params": "Clic para insertar con parámetros",
    "console_close": "Cerrar",
    "console_status_running": "Ejecutando",
    "console_status_stopped": "Detenido",
    "console_status_starting": "Iniciando",
    "console_status_stopping": "Deteniendo",
    "console_status_error": "Error",
    "console_status_unknown": "Desconocido",
    "console_help_help": "  help          - Mostrar este mensaje de ayuda",
    "console_help_getinfo": "  getinfo       - Mostrar información del nodo",
    "console_help_getblockcount": "  getblockcount - Mostrar altura actual del bloque",
    "console_help_getbalance": "  getbalance    - Mostrar saldo transparente",
    "console_help_gettotalbalance": "  gettotalbalance - Mostrar saldo total",
    "console_help_getmininginfo": "  getmininginfo - Mostrar estado de minería",
    "console_help_getpeerinfo": "  getpeerinfo   - Mostrar nodos conectados",
    "console_help_setgenerate": "  setgenerate   - Controlar minería",
    "console_help_stop": "  stop          - Detener el daemon",
    "console_help_clear": "  clear         - Limpiar la consola",

    # ---- About dialog ----
    "about_title": "Acerca de ObsidianDragon",
    "about_edition": "Edición ImGui",
    "about_version": "Versión:",
    "about_imgui": "ImGui:",
    "about_build_date": "Fecha de Compilación:",
    "about_build_type": "Tipo de Compilación:",
    "about_debug": "Depuración",
    "about_release": "Producción",
    "about_daemon": "Daemon:",
    "about_chain": "Cadena:",
    "about_block_height": "Altura de Bloque:",
    "about_connections": "Conexiones:",
    "about_peers_count": "%zu nodos",
    "about_credits": "Créditos",
    "about_license": "Licencia",
    "about_license_text": "Este software se distribuye bajo la Licencia Pública General de GNU v3 (GPLv3). Usted es libre de usar, modificar y distribuir este software bajo los términos de la licencia.",
    "about_website": "Sitio Web",
    "about_github": "GitHub",
    "about_block_explorer": "Explorador de Bloques",

    # ---- Address Book dialog ----
    "address_book_title": "Libreta de Direcciones",
    "address_book_add_new": "Agregar Nueva",
    "address_book_add": "Agregar Dirección",
    "address_book_edit": "Editar Dirección",
    "address_book_empty": "No hay direcciones guardadas. Haz clic en 'Agregar Nueva' para añadir una.",
    "address_book_count": "%zu direcciones guardadas",
    "address_book_deleted": "Entrada eliminada",
    "address_book_added": "Dirección agregada a la libreta",
    "address_book_exists": "La dirección ya existe en la libreta",
    "address_book_updated": "Dirección actualizada",
    "address_book_update_failed": "Error al actualizar - la dirección puede estar duplicada",

    # ---- Backup dialog ----
    "backup_title": "Respaldar Cartera",
    "backup_description": "Crea un respaldo de tu archivo wallet.dat. Este archivo contiene todas tus claves privadas e historial de transacciones. Guarda el respaldo en un lugar seguro.",
    "backup_destination": "Destino del respaldo:",
    "backup_wallet_not_found": "Advertencia: wallet.dat no encontrado en la ubicación esperada",
    "backup_create": "Crear Respaldo",
    "backup_created": "Respaldo de cartera creado",
    "backup_backing_up": "Respaldando...",
    "backup_tips": "Consejos:",
    "backup_tip_external": "Guarda respaldos en unidades externas o almacenamiento en la nube",
    "backup_tip_multiple": "Crea múltiples respaldos en diferentes ubicaciones",
    "backup_tip_test": "Prueba restaurar desde el respaldo periódicamente",
    "backup_wallet": "Respaldar Cartera...",

    # ---- Block Info dialog ----
    "block_info_title": "Información del Bloque",
    "block_height": "Altura del Bloque:",
    "block_get_info": "Obtener Info del Bloque",
    "block_hash": "Hash del Bloque:",
    "block_timestamp": "Fecha y Hora:",
    "block_transactions": "Transacciones:",
    "block_size": "Tamaño:",
    "block_bits": "Bits:",
    "block_merkle_root": "Raíz Merkle:",
    "block_previous": "Bloque Anterior:",
    "block_next": "Bloque Siguiente:",
    "block_click_prev": "Clic para ver bloque anterior",
    "block_click_next": "Clic para ver bloque siguiente",
    "block_nav_prev": "<< Anterior",
    "block_nav_next": "Siguiente >>",

    # ---- Export Keys dialog ----
    "export_keys_title": "Exportar Todas las Claves Privadas",
    "export_keys_danger": "PELIGRO: ¡Esto exportará TODAS las claves privadas de tu cartera! Cualquiera con acceso a este archivo puede robar tus fondos. Guárdalo de forma segura y elimínalo después de usar.",
    "export_keys_options": "Opciones de exportación:",
    "export_keys_include_z": "Incluir direcciones Z (protegidas)",
    "export_keys_include_t": "Incluir direcciones T (transparentes)",
    "export_keys_btn": "Exportar Claves",
    "export_keys_success": "Claves exportadas exitosamente",
    "export_private_key": "Exportar Clave Privada",
    "export_viewing_key": "Exportar Clave de Vista",

    # ---- Export Transactions dialog ----
    "export_tx_title": "Exportar Transacciones a CSV",
    "export_tx_count": "Exportar %zu transacciones a archivo CSV.",
    "export_tx_none": "No hay transacciones para exportar",
    "export_tx_file_fail": "Error al crear archivo CSV",
    "export_tx_success": "Transacciones exportadas exitosamente",

    # ---- Import Key dialog ----
    "import_key_title": "Importar Clave Privada",
    "import_key_warning": "Advertencia: ¡Nunca compartas tus claves privadas! Importar claves de fuentes no confiables puede comprometer tu cartera.",
    "import_key_label": "Clave(s) Privada(s):",
    "import_key_tooltip": "Ingresa una o más claves privadas, una por línea.\nSoporta claves de direcciones z y t.\nLas líneas que empiezan con # se tratan como comentarios.",
    "import_key_btn": "Importar Clave(s)",
    "import_key_no_valid": "No se encontraron claves válidas en la entrada",
    "import_key_success": "Claves importadas exitosamente",
    "import_key_rescan": "Re-escanear blockchain después de importar",
    "import_key_start_height": "Altura inicial:",
    "import_key_full_rescan": "(0 = re-escaneo completo)",
    "import_key_formats": "Formatos de clave soportados:",
    "import_key_z_format": "Claves de gasto de direcciones Z (secret-extended-key-...)",
    "import_key_t_format": "Claves privadas WIF de direcciones T",
    "import_private_key": "Importar Clave Privada...",
    "invalid_address": "Formato de dirección inválido",

    # ---- Key Export dialog ----
    "key_export_private_key": "Clave Privada:",
    "key_export_viewing_key": "Clave de Vista:",
    "key_export_private_warning": "¡Mantén esta clave en SECRETO! Cualquiera con esta clave puede gastar tus fondos. Nunca la compartas en línea ni con personas no confiables.",
    "key_export_viewing_warning": "Esta clave de vista permite a otros ver tus transacciones entrantes y saldo, pero NO gastar tus fondos. Comparte solo con personas de confianza.",
    "key_export_fetching": "Obteniendo clave de la cartera...",
    "key_export_reveal": "Revelar Clave",

    # ---- QR dialog ----
    "qr_title": "Código QR",
    "qr_failed": "Error al generar código QR",

    # ---- Request Payment dialog ----
    "request_title": "Solicitar Pago",
    "request_description": "Genera una solicitud de pago que otros pueden escanear o copiar. El código QR contiene tu dirección y cantidad/memo opcionales.",
    "request_receive_address": "Dirección de Recepción:",
    "request_select_address": "Seleccionar dirección...",
    "request_shielded_addrs": "-- Direcciones Protegidas --",
    "request_transparent_addrs": "-- Direcciones Transparentes --",
    "request_amount": "Cantidad (opcional):",
    "request_label": "Etiqueta (opcional):",
    "request_memo": "Memo (opcional):",
    "request_payment_uri": "URI de Pago:",
    "request_copy_uri": "Copiar URI",
    "request_uri_copied": "URI de pago copiada al portapapeles",

    # ---- Shield dialog ----
    "shield_title": "Proteger Recompensas de Coinbase",
    "shield_description": "Protege tus recompensas de minería enviando salidas coinbase de direcciones transparentes a una dirección protegida. Esto mejora la privacidad ocultando tus ingresos de minería.",
    "shield_from_address": "Dirección de Origen:",
    "shield_wildcard_hint": "Usa '*' para proteger desde todas las direcciones transparentes",
    "shield_to_address": "Dirección Destino (Protegida):",
    "shield_select_z": "Seleccionar dirección z...",
    "shield_utxo_limit": "Límite UTXO:",
    "shield_max_utxos": "UTXOs máximos por operación",
    "shield_funds": "Proteger Fondos",
    "shield_started": "Operación de protección iniciada",
    "shield_check_status": "Verificar Estado",
    "shield_completed": "¡Operación completada exitosamente!",
    "shield_merge_done": "¡Protección/fusión completada!",
    "shield_in_progress": "Operación en progreso...",
    "merge_title": "Fusionar a Dirección",
    "merge_description": "Fusiona múltiples UTXOs en una sola dirección protegida. Esto puede ayudar a reducir el tamaño de la cartera y mejorar la privacidad.",
    "merge_funds": "Fusionar Fondos",
    "merge_started": "Operación de fusión iniciada",

    # ---- Transaction Details dialog ----
    "tx_details_title": "Detalles de Transacción",
    "tx_received": "RECIBIDO",
    "tx_sent": "ENVIADO",
    "tx_mined": "MINADO",
    "tx_immature": "INMADURO",
    "tx_confirmations": "%d confirmaciones",
    "tx_id_label": "ID de Transacción:",
    "tx_to_address": "Dirección Destino:",
    "tx_from_address": "Dirección Origen:",
    "tx_view_explorer": "Ver en Explorador",
    "pending": "Pendiente",

    # ---- Validate Address dialog ----
    "validate_title": "Validar Dirección",
    "validate_description": "Ingresa una dirección DragonX para verificar si es válida y si pertenece a esta cartera.",
    "validate_btn": "Validar",
    "validate_results": "Resultados:",
    "validate_status": "Estado:",
    "validate_valid": "VÁLIDA",
    "validate_invalid": "INVÁLIDA",
    "validate_type": "Tipo:",
    "validate_ownership": "Propiedad:",
    "validate_is_mine": "Esta cartera es dueña de esta dirección",
    "validate_not_mine": "No es propiedad de esta cartera",
    "validate_shielded_type": "Protegida (dirección z)",
    "validate_transparent_type": "Transparente (dirección t)",

    # ---- Misc ----
    "transaction_sent": "Transacción enviada exitosamente",
}

# Load existing to preserve anything we might have missed
import os
existing_path = os.path.join(os.path.dirname(__file__), '..', 'res', 'lang', 'es.json')
out_path = existing_path

with open(out_path, 'w', encoding='utf-8') as f:
    json.dump(dict(sorted(es.items())), f, indent=4, ensure_ascii=False)
    f.write('\n')

print(f"Wrote {len(es)} Spanish translations to {out_path}")
