#!/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}")