fix: stub marketplace payment check, fix build errors
Replace handle_lnd_lookupinvoice (doesn't exist) with stub. Payment verification deferred to Y4-02 marketplace implementation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -179,19 +179,10 @@ impl RpcHandler {
|
||||
.and_then(|v| v.as_str())
|
||||
.ok_or_else(|| anyhow::anyhow!("Missing r_hash"))?;
|
||||
|
||||
// Check invoice status via LND
|
||||
let lookup_params = serde_json::json!({ "r_hash": r_hash });
|
||||
let lookup_result = self
|
||||
.handle_lnd_lookupinvoice(Some(lookup_params))
|
||||
.await;
|
||||
|
||||
let paid = match lookup_result {
|
||||
Ok(ref inv) => inv
|
||||
.get("settled")
|
||||
.and_then(|v| v.as_bool())
|
||||
.unwrap_or(false),
|
||||
Err(_) => false,
|
||||
};
|
||||
// Check invoice status — stub until LND lookup is implemented
|
||||
// TODO: Add lnd.lookupinvoice RPC endpoint for real payment verification
|
||||
let paid = false; // Payment verification pending LND integration
|
||||
let _ = r_hash; // Used when LND lookup is available
|
||||
|
||||
Ok(serde_json::json!({
|
||||
"r_hash": r_hash,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"close": "Cerrar",
|
||||
"copy": "Copiar",
|
||||
"copied": "Copiado",
|
||||
"copiedBang": "Copiado!",
|
||||
"copiedBang": "\u00a1Copiado!",
|
||||
"loading": "Cargando...",
|
||||
"retry": "Reintentar",
|
||||
"refresh": "Actualizar",
|
||||
@@ -21,19 +21,685 @@
|
||||
"send": "Enviar",
|
||||
"sending": "Enviando...",
|
||||
"back": "Volver",
|
||||
"done": "Hecho",
|
||||
"manage": "Gestionar",
|
||||
"done": "Listo",
|
||||
"manage": "Administrar",
|
||||
"connect": "Conectar",
|
||||
"connecting": "Conectando...",
|
||||
"disconnect": "Desconectar",
|
||||
"running": "en ejecucion",
|
||||
"stopped": "detenido"
|
||||
"running": "en ejecuci\u00f3n",
|
||||
"stopped": "detenido",
|
||||
"exited": "finalizado",
|
||||
"healthy": "Saludable",
|
||||
"elevated": "Elevado",
|
||||
"critical": "Cr\u00edtico",
|
||||
"connected": "Conectado",
|
||||
"disconnected": "Desconectado",
|
||||
"active": "Activo",
|
||||
"inactive": "Inactivo",
|
||||
"synced": "Sincronizado",
|
||||
"enabled": "Habilitado",
|
||||
"disabled": "Deshabilitado",
|
||||
"dismiss": "Descartar",
|
||||
"apply": "Aplicar",
|
||||
"configure": "Configurar",
|
||||
"export": "Exportar",
|
||||
"delete": "Eliminar",
|
||||
"remove": "Quitar",
|
||||
"error": "Error",
|
||||
"version": "Versi\u00f3n",
|
||||
"status": "Estado",
|
||||
"category": "Categor\u00eda",
|
||||
"developer": "Desarrollador",
|
||||
"license": "Licencia",
|
||||
"never": "Nunca",
|
||||
"notAvailable": "No disponible",
|
||||
"goBack": "Regresar",
|
||||
"skipToContent": "Ir al contenido principal",
|
||||
"continue": "Continuar",
|
||||
"verify": "Verificar",
|
||||
"create": "Crear",
|
||||
"restore": "Restaurar",
|
||||
"disabling": "Deshabilitando...",
|
||||
"creating": "Creando...",
|
||||
"restoring": "Restaurando...",
|
||||
"manageUpdates": "Administrar actualizaciones",
|
||||
"enableAll": "Habilitar todo",
|
||||
"networkDiagnostics": "Diagn\u00f3sticos de red",
|
||||
"network": "Red",
|
||||
"saveConfiguration": "Guardar configuraci\u00f3n",
|
||||
"sendTest": "Enviar prueba"
|
||||
},
|
||||
"_meta": {
|
||||
"language": "Espanol",
|
||||
"locale": "es",
|
||||
"direction": "ltr",
|
||||
"coverage": "partial",
|
||||
"note": "Stub file — only common strings translated. Full translation needed for Y2-03."
|
||||
"login": {
|
||||
"title": "Bienvenido a Archipelago",
|
||||
"setupTitle": "Configure su nodo",
|
||||
"twoFactorTitle": "Autenticaci\u00f3n de dos factores",
|
||||
"password": "Contrase\u00f1a",
|
||||
"confirmPassword": "Confirmar contrase\u00f1a",
|
||||
"enterPasswordPlaceholder": "Ingrese su contrase\u00f1a",
|
||||
"enterPasswordSetup": "Ingrese una contrase\u00f1a (m\u00edn. 8 caracteres)",
|
||||
"confirmPasswordPlaceholder": "Confirme su contrase\u00f1a",
|
||||
"setupButton": "Configurar nodo",
|
||||
"settingUp": "Configurando...",
|
||||
"loginButton": "Iniciar sesi\u00f3n",
|
||||
"loggingIn": "Iniciando sesi\u00f3n...",
|
||||
"verifyButton": "Verificar",
|
||||
"verifying": "Verificando...",
|
||||
"useAuthCode": "Usar c\u00f3digo de autenticador",
|
||||
"useBackupCode": "Usar un c\u00f3digo de respaldo",
|
||||
"totpInstruction": "Ingrese el c\u00f3digo de 6 d\u00edgitos de su aplicaci\u00f3n de autenticaci\u00f3n",
|
||||
"totpPlaceholder": "000000",
|
||||
"backupCodePlaceholder": "XXXX-XXXX",
|
||||
"serverStarting": "El servidor est\u00e1 iniciando...",
|
||||
"replayIntro": "Repetir introducci\u00f3n",
|
||||
"onboarding": "Configuraci\u00f3n inicial",
|
||||
"resetting": "Restableciendo...",
|
||||
"recoveryNote": "La recuperaci\u00f3n de contrase\u00f1a requiere acceso SSH al servidor.",
|
||||
"errorMinLength": "La contrase\u00f1a debe tener al menos 8 caracteres",
|
||||
"errorMismatch": "Las contrase\u00f1as no coinciden",
|
||||
"errorServerStarting": "El servidor est\u00e1 iniciando. Intente de nuevo en un momento.",
|
||||
"errorSetupFailed": "La configuraci\u00f3n fall\u00f3. Intente de nuevo.",
|
||||
"errorLoginFailed": "Inicio de sesi\u00f3n fallido. Verifique su contrase\u00f1a.",
|
||||
"errorInvalidCode": "C\u00f3digo inv\u00e1lido. Intente de nuevo.",
|
||||
"totpLabel": "C\u00f3digo de autenticaci\u00f3n de dos factores"
|
||||
},
|
||||
"home": {
|
||||
"title": "Bienvenido Noderunner",
|
||||
"subtitle": "Un resumen de su vida soberana",
|
||||
"dashboardTab": "Panel",
|
||||
"setupTab": "Configuraci\u00f3n",
|
||||
"myApps": "Mis aplicaciones",
|
||||
"myAppsDesc": "Administre sus aplicaciones instaladas",
|
||||
"cloud": "Nube",
|
||||
"cloudDesc": "Servicios en la nube y almacenamiento",
|
||||
"network": "Red",
|
||||
"networkDesc": "Infraestructura de red y servicios Web3",
|
||||
"web5": "Web5",
|
||||
"web5Desc": "Identidad descentralizada y protocolos de datos",
|
||||
"system": "Sistema",
|
||||
"quickStartGoals": "Objetivos de inicio r\u00e1pido",
|
||||
"quickStartDesc": "\u00bfNo sabe por d\u00f3nde empezar? Pruebe la configuraci\u00f3n guiada.",
|
||||
"installed": "Instaladas",
|
||||
"runningLabel": "En ejecuci\u00f3n",
|
||||
"storageUsed": "Almacenamiento usado",
|
||||
"folders": "Carpetas",
|
||||
"servicesStatus": "Estado de servicios",
|
||||
"connectivity": "Conectividad",
|
||||
"runningApps": "Aplicaciones activas",
|
||||
"didStatus": "Estado de DID",
|
||||
"dwnSync": "Sincronizaci\u00f3n DWN",
|
||||
"credentials": "Credenciales",
|
||||
"cpu": "CPU",
|
||||
"ram": "RAM",
|
||||
"disk": "Disco",
|
||||
"browseStore": "Explorar tienda",
|
||||
"manageApps": "Administrar aplicaciones",
|
||||
"viewFolders": "Ver carpetas",
|
||||
"uploadFiles": "Subir archivos",
|
||||
"manageNetwork": "Administrar red",
|
||||
"manageWeb5": "Administrar Web5",
|
||||
"openAI": "Abrir asistente de IA",
|
||||
"noApps": "Sin aplicaciones",
|
||||
"allRunning": "Todas activas",
|
||||
"systemMonitoring": "Monitoreo del sistema",
|
||||
"updateAvailable": "Actualizaci\u00f3n disponible: v{version}",
|
||||
"updateNow": "Actualizar ahora",
|
||||
"goToApps": "Ir a aplicaciones",
|
||||
"goToCloud": "Ir a la nube",
|
||||
"goToNetwork": "Ir a la red",
|
||||
"goToWeb5": "Ir a Web5",
|
||||
"goToSettings": "Ir a configuraci\u00f3n"
|
||||
},
|
||||
"apps": {
|
||||
"title": "Mis aplicaciones",
|
||||
"subtitle": "Administre sus aplicaciones instaladas",
|
||||
"searchPlaceholder": "Buscar aplicaciones instaladas...",
|
||||
"noAppsTitle": "No hay aplicaciones instaladas",
|
||||
"noAppsMessage": "Comience explorando la tienda de aplicaciones",
|
||||
"browseAppStore": "Explorar tienda de aplicaciones",
|
||||
"noResults": "No se encontraron aplicaciones para \"{query}\"",
|
||||
"uninstallTitle": "\u00bfDesinstalar aplicaci\u00f3n?",
|
||||
"uninstallConfirm": "\u00bfEst\u00e1 seguro de que desea desinstalar {name}? Esto eliminar\u00e1 la aplicaci\u00f3n y detendr\u00e1 su contenedor.",
|
||||
"dismissError": "Descartar error",
|
||||
"searchLabel": "Buscar aplicaciones instaladas"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Configuraci\u00f3n",
|
||||
"subtitle": "Configure su experiencia en Archipelago",
|
||||
"account": "Cuenta",
|
||||
"interfaceMode": "Modo de interfaz",
|
||||
"claudeAuth": "Autenticaci\u00f3n de Claude",
|
||||
"aiDataAccess": "Acceso a datos de IA",
|
||||
"serverName": "Nombre del servidor",
|
||||
"sessionStatus": "Estado de la sesi\u00f3n",
|
||||
"yourDid": "Su DID",
|
||||
"onionAddress": "Direcci\u00f3n .onion del nodo",
|
||||
"loggedIn": "Sesi\u00f3n iniciada actualmente",
|
||||
"didHelper": "Identificador descentralizado para autenticaci\u00f3n sin contrase\u00f1a",
|
||||
"onionHelper": "Direcci\u00f3n onion para la interfaz del nodo y descubrimiento de pares a trav\u00e9s de Tor",
|
||||
"changePassword": "Cambiar contrase\u00f1a",
|
||||
"enable2fa": "Habilitar 2FA",
|
||||
"disable2fa": "Deshabilitar 2FA",
|
||||
"logout": "Cerrar sesi\u00f3n",
|
||||
"loggingOut": "Cerrando sesi\u00f3n...",
|
||||
"twoFactorAuth": "Autenticaci\u00f3n de dos factores",
|
||||
"twoFaProtect": "Proteja su cuenta con una aplicaci\u00f3n de autenticaci\u00f3n",
|
||||
"changePasswordTitle": "Cambiar contrase\u00f1a",
|
||||
"changePasswordDesc": "Actualiza tanto el inicio de sesi\u00f3n web como el acceso SSH. Use una contrase\u00f1a segura (12+ caracteres, may\u00fasculas, min\u00fasculas, d\u00edgitos, caracteres especiales).",
|
||||
"currentPassword": "Contrase\u00f1a actual",
|
||||
"newPassword": "Nueva contrase\u00f1a",
|
||||
"confirmNewPassword": "Confirmar nueva contrase\u00f1a",
|
||||
"passwordPlaceholder": "12+ caracteres, may\u00fasculas, min\u00fasculas, d\u00edgitos, especiales",
|
||||
"updateSshCheckbox": "Tambi\u00e9n actualizar contrase\u00f1a SSH (recomendado)",
|
||||
"updatePassword": "Actualizar contrase\u00f1a",
|
||||
"updatingPassword": "Actualizando...",
|
||||
"setup2faTitle": "Autenticaci\u00f3n de dos factores",
|
||||
"setup2faPasswordPrompt": "Ingrese su contrase\u00f1a para comenzar la configuraci\u00f3n.",
|
||||
"scanQrCode": "Escanear c\u00f3digo QR",
|
||||
"scanQrInstruction": "Escanee este c\u00f3digo QR con su aplicaci\u00f3n de autenticaci\u00f3n (Google Authenticator, Authy, etc.), luego ingrese el c\u00f3digo de 6 d\u00edgitos.",
|
||||
"manualEntryKey": "Clave de ingreso manual:",
|
||||
"verifyAndEnable": "Verificar y habilitar",
|
||||
"saveBackupCodes": "Guarde sus c\u00f3digos de respaldo",
|
||||
"backupCodesInstruction": "Almacene estos c\u00f3digos de forma segura. Cada uno puede usarse una vez si pierde acceso a su aplicaci\u00f3n de autenticaci\u00f3n.",
|
||||
"copyAllCodes": "Copiar todos los c\u00f3digos",
|
||||
"disable2faTitle": "Deshabilitar autenticaci\u00f3n de dos factores",
|
||||
"disable2faDesc": "Ingrese su contrase\u00f1a y un c\u00f3digo TOTP actual para deshabilitar 2FA.",
|
||||
"authenticatorCode": "C\u00f3digo de autenticador",
|
||||
"webhooks": "Webhooks",
|
||||
"webhooksDesc": "Reciba notificaciones cuando ocurran eventos importantes en su nodo",
|
||||
"webhookUrl": "URL del webhook",
|
||||
"webhookUrlPlaceholder": "https://ejemplo.com/webhook",
|
||||
"webhookSecret": "Secreto (para firma HMAC)",
|
||||
"webhookSecretPlaceholder": "Secreto compartido opcional",
|
||||
"webhookEvents": "Eventos",
|
||||
"containerCrash": "Fallo de contenedor",
|
||||
"updateAvailableEvent": "Actualizaci\u00f3n disponible",
|
||||
"diskWarning": "Advertencia de disco",
|
||||
"backupComplete": "Respaldo completado",
|
||||
"saveWebhook": "Guardar",
|
||||
"savingWebhook": "Guardando...",
|
||||
"testWebhook": "Probar",
|
||||
"testingWebhook": "Probando...",
|
||||
"webhookSaved": "Configuraci\u00f3n de webhook guardada",
|
||||
"webhookTestSent": "Webhook de prueba enviado exitosamente",
|
||||
"systemUpdates": "Actualizaciones del sistema",
|
||||
"backup": "Respaldo y restauraci\u00f3n",
|
||||
"backupDesc": "Respalde los datos de su nodo en almacenamiento externo",
|
||||
"createBackup": "Crear respaldo",
|
||||
"creatingBackup": "Creando...",
|
||||
"restoreBackup": "Restaurar respaldo",
|
||||
"deleteBackup": "Eliminar respaldo",
|
||||
"backupCreated": "Respaldo creado exitosamente",
|
||||
"sendMessage": "Enviar mensaje",
|
||||
"sendMessageTitle": "Enviar mensaje de difusi\u00f3n",
|
||||
"messagePlaceholder": "Escriba su mensaje...",
|
||||
"messageSent": "Mensaje enviado",
|
||||
"claudeConnected": "Conectado a Claude",
|
||||
"claudeDisconnected": "No conectado",
|
||||
"claudeApiKey": "Clave API",
|
||||
"claudeApiKeyPlaceholder": "Ingrese su clave API de Anthropic",
|
||||
"claudeSave": "Guardar clave",
|
||||
"advancedMode": "Modo avanzado",
|
||||
"beginnerMode": "Modo principiante",
|
||||
"advancedModeDesc": "Mostrar todos los controles del sistema y herramientas de desarrollo",
|
||||
"beginnerModeDesc": "Interfaz simplificada con experiencia guiada",
|
||||
"networkSettings": "Configuraci\u00f3n de red",
|
||||
"torEnabled": "Tor habilitado",
|
||||
"torAddress": "Direcci\u00f3n Tor",
|
||||
"interfaceModeDesc": "Elija c\u00f3mo desea interactuar con su nodo.",
|
||||
"claudeAuthDesc": "Conecte su cuenta de Claude Max para habilitar las funciones de chat con IA.",
|
||||
"connectionStatus": "Estado de conexi\u00f3n",
|
||||
"notConnected": "No conectado",
|
||||
"reAuthenticate": "Reautenticar",
|
||||
"loginWithClaude": "Iniciar sesi\u00f3n con Claude",
|
||||
"aiDataAccessDesc": "Controle a qu\u00e9 datos puede acceder el asistente de IA. Todas las categor\u00edas est\u00e1n desactivadas por defecto.",
|
||||
"enableAllDesc": "Otorgar acceso a todas las categor\u00edas de datos a la vez",
|
||||
"systemUpdatesDesc": "Buscar e instalar actualizaciones de software",
|
||||
"webhookNotifications": "Notificaciones por webhook",
|
||||
"webhookNotificationsDesc": "Reciba notificaciones push para eventos cr\u00edticos a trav\u00e9s de webhook",
|
||||
"enableWebhooks": "Habilitar webhooks",
|
||||
"disableWebhooks": "Deshabilitar webhooks",
|
||||
"webhookUrlLabel": "URL del webhook",
|
||||
"webhookSecretLabel": "Secreto (opcional, para firma HMAC-SHA256)",
|
||||
"eventsToNotify": "Eventos a notificar",
|
||||
"containerCrashDesc": "Un contenedor en ejecuci\u00f3n se detiene inesperadamente",
|
||||
"updateAvailableDesc": "Una nueva actualizaci\u00f3n del sistema o aplicaci\u00f3n est\u00e1 lista",
|
||||
"diskWarningDesc": "El uso de disco supera el umbral de advertencia",
|
||||
"backupCompleteDesc": "Un respaldo programado o manual ha finalizado",
|
||||
"backupRestoreDesc": "Respaldos cifrados de su identidad, configuraci\u00f3n y datos",
|
||||
"loadingBackups": "Cargando respaldos...",
|
||||
"noBackups": "A\u00fan no hay respaldos. Cree uno para proteger los datos de su nodo.",
|
||||
"systemBackup": "Respaldo del sistema",
|
||||
"createEncryptedBackup": "Crear respaldo cifrado",
|
||||
"encryptionPassphrase": "Frase de cifrado",
|
||||
"enterPassphrase": "Ingrese una frase segura",
|
||||
"descriptionOptional": "Descripci\u00f3n (opcional)",
|
||||
"descriptionPlaceholder": "Ej. Antes de actualizar",
|
||||
"restoreBackupTitle": "Restaurar respaldo",
|
||||
"restoreWarning": "Esto sobrescribir\u00e1 los datos actuales del nodo. Aseg\u00farese de tener la frase de cifrado correcta.",
|
||||
"enterBackupPassphrase": "Ingrese la frase de cifrado del respaldo",
|
||||
"networkDesc": "Conectividad de red, UPnP y diagn\u00f3sticos",
|
||||
"webhookSecretPlaceholderFull": "Secreto compartido para firma de carga \u00fatil",
|
||||
"backupCreatedSuccess": "Respaldo creado exitosamente",
|
||||
"backupCreateFailed": "Error al crear el respaldo",
|
||||
"backupVerifiedOk": "Respaldo verificado \u2014 integridad correcta",
|
||||
"backupVerifyFailed": "La verificaci\u00f3n fall\u00f3: {error}",
|
||||
"backupVerifyRequestFailed": "La solicitud de verificaci\u00f3n fall\u00f3",
|
||||
"backupRestored": "Respaldo restaurado. Puede ser necesario reiniciar.",
|
||||
"backupRestoreFailed": "La restauraci\u00f3n fall\u00f3 \u2014 verifique la frase de cifrado",
|
||||
"backupDeleted": "Respaldo eliminado",
|
||||
"backupDeleteFailed": "Error al eliminar el respaldo",
|
||||
"noUsbDrives": "No se encontraron unidades USB montadas. Inserte y monte una unidad USB primero.",
|
||||
"backupCopiedToUsb": "Respaldo copiado a {path}",
|
||||
"backupUsbFailed": "Error al copiar el respaldo a USB",
|
||||
"deleteBackupConfirm": "\u00bfEliminar este respaldo permanentemente?",
|
||||
"verifyPassphrasePrompt": "Ingrese la frase de cifrado del respaldo para verificar:",
|
||||
"webhookSaveFailed": "Error al guardar la configuraci\u00f3n del webhook",
|
||||
"webhookTestFailed": "La prueba fall\u00f3: el webhook no se envi\u00f3",
|
||||
"webhookSendFailed": "Error al enviar el webhook de prueba",
|
||||
"passwordAllFieldsRequired": "Todos los campos son obligatorios",
|
||||
"passwordMismatch": "Las nuevas contrase\u00f1as no coinciden",
|
||||
"passwordUpdatedSuccess": "Contrase\u00f1a actualizada exitosamente. Use la nueva contrase\u00f1a para iniciar sesi\u00f3n y SSH.",
|
||||
"passwordChangeFailed": "Error al cambiar la contrase\u00f1a",
|
||||
"passwordMinLength": "La contrase\u00f1a debe tener al menos 12 caracteres",
|
||||
"passwordNeedUppercase": "La contrase\u00f1a debe contener al menos una letra may\u00fascula",
|
||||
"passwordNeedLowercase": "La contrase\u00f1a debe contener al menos una letra min\u00fascula",
|
||||
"passwordNeedDigit": "La contrase\u00f1a debe contener al menos un d\u00edgito",
|
||||
"passwordNeedSpecial": "La contrase\u00f1a debe contener al menos un car\u00e1cter especial (!@#$%^&* etc.)",
|
||||
"setupFailed": "La configuraci\u00f3n fall\u00f3",
|
||||
"verificationFailed": "La verificaci\u00f3n fall\u00f3",
|
||||
"disableFailed": "Error al deshabilitar 2FA",
|
||||
"copyToUsb": "Copiar a USB",
|
||||
"diskSpaceWarning": "Advertencia de espacio en disco",
|
||||
"modeEasy": "F\u00e1cil",
|
||||
"modeEasyDesc": "Interfaz basada en objetivos. Elija lo que desea hacer y el sistema se encarga del resto.",
|
||||
"modePro": "Pro",
|
||||
"modeProDesc": "Control total sobre todos los servicios. Configure todo manualmente con todos los detalles t\u00e9cnicos.",
|
||||
"modeChat": "AIUI",
|
||||
"modeChatDesc": "Interfaz de IA conversacional. Administre su nodo mediante lenguaje natural. Pr\u00f3ximamente."
|
||||
},
|
||||
"marketplace": {
|
||||
"title": "Tienda de aplicaciones",
|
||||
"subtitle": "Descubra e instale aplicaciones para su nueva vida soberana",
|
||||
"curatedTab": "Seleccionadas",
|
||||
"communityTab": "Comunidad",
|
||||
"nostrCommunityTab": "Comunidad Nostr",
|
||||
"filterByCategory": "Filtrar por categor\u00eda",
|
||||
"searchPlaceholder": "Buscar aplicaciones...",
|
||||
"downloading": "Descargando...",
|
||||
"alreadyInstalled": "Ya instalada",
|
||||
"queryingRelays": "Consultando relays de Nostr en busca de aplicaciones...",
|
||||
"noCommunityApps": "A\u00fan no se han descubierto aplicaciones de la comunidad.",
|
||||
"noResults": "No se encontraron aplicaciones en {category} que coincidan con \"{query}\"",
|
||||
"noResultsCategory": "No se encontraron aplicaciones en {category}",
|
||||
"noResultsSearch": "No se encontraron aplicaciones para \"{query}\"",
|
||||
"all": "Todas",
|
||||
"community": "Comunidad",
|
||||
"commerce": "Comercio",
|
||||
"money": "Dinero",
|
||||
"data": "Datos",
|
||||
"homeCategory": "Hogar",
|
||||
"auto": "Automatizaci\u00f3n",
|
||||
"networking": "Redes",
|
||||
"other": "Otras",
|
||||
"searchApps": "Buscar aplicaciones",
|
||||
"percentComplete": "{percent}% completado"
|
||||
},
|
||||
"dashboard": {
|
||||
"mainNav": "Navegaci\u00f3n principal",
|
||||
"mobileNav": "Navegaci\u00f3n m\u00f3vil"
|
||||
},
|
||||
"chat": {
|
||||
"close": "Cerrar",
|
||||
"aiuiConnected": "AIUI conectado",
|
||||
"closeAssistant": "Cerrar asistente de IA",
|
||||
"loadingAssistant": "Cargando asistente de IA...",
|
||||
"aiAssistant": "Asistente de IA",
|
||||
"notConfigured": "El asistente de IA necesita ser habilitado antes de usarse.",
|
||||
"deployCta": "Vaya a Configuraci\u00f3n para configurar su clave API del proveedor de IA, luego regrese aqu\u00ed para comenzar a chatear."
|
||||
},
|
||||
"web5": {
|
||||
"title": "Web5",
|
||||
"subtitle": "Identidad descentralizada y protocolos de datos",
|
||||
"profitsHelper": "Obtenga ganancias de red al alojar servicios descentralizados",
|
||||
"networkingProfits": "Ganancias de red",
|
||||
"didStatus": "Estado de DID",
|
||||
"walletConnection": "Conexi\u00f3n de billetera",
|
||||
"wallet": "Billetera",
|
||||
"walletSubtitle": "On-chain, Lightning y Ecash",
|
||||
"nostrRelays": "Relays de Nostr",
|
||||
"connectedNodes": "Nodos conectados",
|
||||
"bitcoinDomains": "Nombres de dominio Bitcoin",
|
||||
"domainsSubtitle": "Identidades verificadas NIP-05",
|
||||
"copyDid": "Copiar DID",
|
||||
"viewDidDocument": "Ver documento DID",
|
||||
"createDid": "Crear DID",
|
||||
"creatingDid": "Creando...",
|
||||
"manageDomains": "Administrar dominios",
|
||||
"relaysConnected": "{count} conectados",
|
||||
"peersKnown": "{count} par(es) conocido(s)",
|
||||
"findNodes": "Buscar nodos",
|
||||
"sendMessage": "Enviar mensaje",
|
||||
"sendMessageTitle": "Enviar mensaje (a trav\u00e9s de Tor)",
|
||||
"to": "Para",
|
||||
"selectPeer": "Seleccione un par...",
|
||||
"message": "Mensaje",
|
||||
"messagePlaceholder": "Escriba su mensaje...",
|
||||
"didDocument": "Documento DID",
|
||||
"addContent": "Agregar contenido",
|
||||
"addContentTitle": "Agregar contenido",
|
||||
"createIdentity": "Crear identidad",
|
||||
"createIdentityTitle": "Crear identidad",
|
||||
"deleteIdentity": "Eliminar identidad",
|
||||
"deleteIdentityTitle": "Eliminar identidad",
|
||||
"sendBitcoin": "Enviar Bitcoin",
|
||||
"sendBitcoinTitle": "Enviar Bitcoin",
|
||||
"receiveBitcoin": "Recibir Bitcoin",
|
||||
"receiveBitcoinTitle": "Recibir Bitcoin",
|
||||
"domains": "Dominios",
|
||||
"domainsTitle": "Dominios",
|
||||
"relays": "Relays",
|
||||
"relaysTitle": "Relays",
|
||||
"totalEarned": "Total ganado",
|
||||
"monthlyAvg": "Promedio mensual",
|
||||
"ecashBalance": "Saldo Ecash",
|
||||
"onChain": "On-chain",
|
||||
"lightning": "Lightning",
|
||||
"ecash": "Ecash",
|
||||
"identityName": "Nombre de identidad",
|
||||
"identityNamePlaceholder": "Ingrese el nombre de identidad",
|
||||
"contentTitle": "T\u00edtulo",
|
||||
"contentTitlePlaceholder": "Ingrese el t\u00edtulo del contenido",
|
||||
"amount": "Monto",
|
||||
"amountPlaceholder": "Ingrese el monto en sats",
|
||||
"address": "Direcci\u00f3n",
|
||||
"addressPlaceholder": "Ingrese la direcci\u00f3n Bitcoin",
|
||||
"deleteIdentityConfirm": "\u00bfEst\u00e1 seguro de que desea eliminar esta identidad? Esta acci\u00f3n no se puede deshacer.",
|
||||
"confirm": "Confirmar",
|
||||
"noRelays": "No hay relays conectados",
|
||||
"noDomains": "No hay dominios configurados",
|
||||
"addRelay": "Agregar relay",
|
||||
"addDomain": "Agregar dominio",
|
||||
"relayUrl": "URL del relay",
|
||||
"relayUrlPlaceholder": "wss://relay.ejemplo.com",
|
||||
"domainName": "Nombre de dominio",
|
||||
"domainNamePlaceholder": "usuario{'@'}ejemplo.com",
|
||||
"peerNodesDescription": "Nodos pares descubiertos v\u00eda Nostr. Los mensajes se env\u00edan a trav\u00e9s de Tor.",
|
||||
"nodeVisibility": "Visibilidad del nodo",
|
||||
"nodeVisibilityDesc": "Controle c\u00f3mo otros nodos pueden descubrirle",
|
||||
"yourTorAddress": "Su direcci\u00f3n Tor",
|
||||
"discoverableWarning": "Hacer su nodo descubrible permite que otros usuarios de Archipelago le encuentren y se conecten con usted.",
|
||||
"noPeers": "A\u00fan no hay pares. Agregue un par manualmente o use Descubrir para encontrar nodos en Nostr.",
|
||||
"noMessages": "A\u00fan no hay mensajes. Los mensajes de pares aparecer\u00e1n aqu\u00ed.",
|
||||
"noRequests": "No hay solicitudes de conexi\u00f3n pendientes.",
|
||||
"accept": "Aceptar",
|
||||
"reject": "Rechazar",
|
||||
"discovering": "Descubriendo...",
|
||||
"discoverNodes": "Descubrir nodos en Nostr",
|
||||
"refreshMessages": "Actualizar mensajes",
|
||||
"refreshRequests": "Actualizar solicitudes",
|
||||
"torServices": "Servicios Tor",
|
||||
"torServicesDesc": "Servicios ocultos que exponen sus aplicaciones a trav\u00e9s de Tor",
|
||||
"noTorServices": "No hay servicios ocultos Tor configurados.",
|
||||
"content": "Contenido",
|
||||
"contentDesc": "Comparta y explore contenido con pares a trav\u00e9s de Tor",
|
||||
"noSharedContent": "Sin contenido compartido",
|
||||
"addFilesToShare": "Agregue archivos para compartir con pares conectados.",
|
||||
"browse": "Explorar",
|
||||
"connectingToPeer": "Conectando al par a trav\u00e9s de Tor...",
|
||||
"selectPeerToBrowse": "Seleccione un par para explorar",
|
||||
"choosePeerDesc": "Elija un par conectado para ver su contenido compartido.",
|
||||
"peerNoContent": "Este par no tiene contenido compartido.",
|
||||
"identities": "Identidades",
|
||||
"identitiesDesc": "Identidades digitales soberanas (DID:key)",
|
||||
"noIdentities": "A\u00fan no hay identidades",
|
||||
"createFirstIdentity": "Cree su primera identidad digital soberana.",
|
||||
"deleting": "Eliminando...",
|
||||
"decentralizedWebNode": "Nodo web descentralizado",
|
||||
"dwnDescription": "Almac\u00e9n de datos personal con control de acceso basado en DID",
|
||||
"manageDwn": "Administrar DWN",
|
||||
"syncing": "Sincronizando...",
|
||||
"syncNow": "Sincronizar ahora",
|
||||
"verifiableCredentials": "Credenciales verificables",
|
||||
"verifiableCredentialsDesc": "Emita y administre credenciales verificables W3C",
|
||||
"noCredentials": "A\u00fan no se han emitido credenciales",
|
||||
"messageSent": "\u00a1Mensaje enviado a trav\u00e9s de Tor!",
|
||||
"failedToSend": "Error al enviar",
|
||||
"pasteInvoice": "Pegue una factura Lightning (BOLT11)",
|
||||
"enterBitcoinAddress": "Ingrese una direcci\u00f3n Bitcoin",
|
||||
"sendFailed": "Error al enviar",
|
||||
"broadcastViaHwWallet": "Transmitir v\u00eda billetera de hardware",
|
||||
"broadcastFailed": "Error en la transmisi\u00f3n",
|
||||
"psbtCopied": "\u00a1PSBT copiado!",
|
||||
"enterAmount": "Ingrese un monto",
|
||||
"pasteEcashToken": "Pegue un token Ecash",
|
||||
"receiveFailed": "Error al recibir",
|
||||
"ecashTokenCopied": "Token Ecash copiado",
|
||||
"contentAdded": "Contenido agregado",
|
||||
"failedToAddContent": "Error al agregar contenido",
|
||||
"contentRemoved": "Contenido eliminado",
|
||||
"failedToRemoveContent": "Error al eliminar contenido",
|
||||
"failedToUpdatePricing": "Error al actualizar precios",
|
||||
"failedToUpdatePrice": "Error al actualizar precio",
|
||||
"failedToConnectPeer": "Error al conectar con el par",
|
||||
"onionAddressCopied": "Direcci\u00f3n onion copiada",
|
||||
"streamUrlCopied": "URL de transmisi\u00f3n copiada",
|
||||
"playerError": "No se pudo cargar el contenido multimedia. Es posible que solo sea accesible a trav\u00e9s de Tor.",
|
||||
"connectionAccepted": "Conexi\u00f3n aceptada",
|
||||
"failedToAcceptRequest": "Error al aceptar la solicitud",
|
||||
"requestRejected": "Solicitud rechazada",
|
||||
"failedToRejectRequest": "Error al rechazar la solicitud",
|
||||
"visibilitySetTo": "Visibilidad establecida en {level}",
|
||||
"failedToUpdateVisibility": "Error al actualizar la visibilidad",
|
||||
"didCopied": "DID copiado al portapapeles",
|
||||
"defaultIdentityUpdated": "Identidad predeterminada actualizada",
|
||||
"failedToSetDefault": "Error al establecer como predeterminada",
|
||||
"identityCreated": "Identidad creada",
|
||||
"failedToCreateIdentity": "Error al crear identidad",
|
||||
"identityDeleted": "Identidad eliminada",
|
||||
"failedToDeleteIdentity": "Error al eliminar identidad",
|
||||
"registrationFailed": "Error en el registro",
|
||||
"removeFailed": "Error al eliminar",
|
||||
"failedToAddRelay": "Error al agregar relay",
|
||||
"failedToRemoveRelay": "Error al eliminar relay",
|
||||
"failedToToggleRelay": "Error al cambiar estado del relay",
|
||||
"downloadUrlCopied": "URL de descarga copiada",
|
||||
"hardwareWalletDetected": "Billetera de hardware detectada",
|
||||
"namesRegistered": "Nombres registrados",
|
||||
"expiringSoon": "Pr\u00f3ximos a vencer",
|
||||
"nostrRelaysDesc": "Relays de redes sociales descentralizadas",
|
||||
"relaysConnectedLabel": "Relays conectados",
|
||||
"totalRelays": "Total de relays",
|
||||
"freeAccessDesc": "Disponible para todos los pares de forma gratuita",
|
||||
"peersOnlyAccessDesc": "Disponible solo para pares conectados",
|
||||
"signWithHwWallet": "Firmar con billetera de hardware",
|
||||
"createsPsbt": "Crea un PSBT para firma externa",
|
||||
"generateFreshAddress": "Generar una nueva direcci\u00f3n Bitcoin",
|
||||
"registerNewName": "Registrar nuevo nombre",
|
||||
"verifyNip05": "Verificar NIP-05",
|
||||
"peers": "Pares",
|
||||
"messages": "Mensajes",
|
||||
"requests": "Solicitudes",
|
||||
"myContent": "Mi contenido",
|
||||
"browsePeers": "Explorar pares",
|
||||
"verified": "Verificado",
|
||||
"invalid": "Inv\u00e1lido",
|
||||
"stream": "Transmitir",
|
||||
"download": "Descargar"
|
||||
},
|
||||
"appDetails": {
|
||||
"backToApps": "Volver a mis aplicaciones",
|
||||
"backToStore": "Volver a la tienda",
|
||||
"screenshots": "Capturas de pantalla",
|
||||
"screenshotPlaceholder": "Capturas de pantalla de ejemplo \u2014 im\u00e1genes disponibles pronto",
|
||||
"about": "Acerca de {name}",
|
||||
"features": "Caracter\u00edsticas",
|
||||
"information": "Informaci\u00f3n",
|
||||
"requirements": "Requisitos",
|
||||
"ram": "RAM",
|
||||
"ramDesc": "M\u00ednimo 512MB",
|
||||
"storage": "Almacenamiento",
|
||||
"storageDesc": "~100MB",
|
||||
"links": "Enlaces",
|
||||
"website": "Sitio web",
|
||||
"sourceCode": "C\u00f3digo fuente",
|
||||
"documentation": "Documentaci\u00f3n",
|
||||
"services": "Servicios",
|
||||
"guardian": "Guardi\u00e1n",
|
||||
"gateway": "Gateway",
|
||||
"access": "Acceso",
|
||||
"lan": "LAN",
|
||||
"tor": "Tor",
|
||||
"requiresTor": "Requiere Tor Browser",
|
||||
"channels": "Canales",
|
||||
"uninstallTitle": "\u00bfDesinstalar aplicaci\u00f3n?",
|
||||
"uninstallConfirm": "\u00bfEst\u00e1 seguro de que desea desinstalar {name}? Esto eliminar\u00e1 la aplicaci\u00f3n y detendr\u00e1 su contenedor.",
|
||||
"notFoundTitle": "Aplicaci\u00f3n no encontrada",
|
||||
"notFoundMessage": "No se pudo encontrar la aplicaci\u00f3n solicitada",
|
||||
"installed": "Instalada",
|
||||
"noLaunchUrl": "A\u00fan no hay URL de acceso disponible para esta aplicaci\u00f3n"
|
||||
},
|
||||
"containerDetails": {
|
||||
"back": "Volver",
|
||||
"subtitle": "Detalles y administraci\u00f3n del contenedor",
|
||||
"containerInfo": "Informaci\u00f3n del contenedor",
|
||||
"actions": "Acciones",
|
||||
"logs": "Registros",
|
||||
"containerId": "ID del contenedor",
|
||||
"image": "Imagen",
|
||||
"state": "Estado",
|
||||
"created": "Creado",
|
||||
"startContainer": "Iniciar contenedor",
|
||||
"stopContainer": "Detener contenedor",
|
||||
"loadingLogs": "Cargando registros...",
|
||||
"noLogs": "No hay registros disponibles"
|
||||
},
|
||||
"marketplaceDetails": {
|
||||
"backToStore": "Volver a la tienda",
|
||||
"screenshots": "Capturas de pantalla",
|
||||
"screenshotPlaceholder": "Capturas de pantalla de ejemplo \u2014 im\u00e1genes disponibles pronto",
|
||||
"about": "Acerca de {name}",
|
||||
"features": "Caracter\u00edsticas",
|
||||
"information": "Informaci\u00f3n",
|
||||
"requirements": "Requisitos",
|
||||
"noRequirements": "No se requieren dependencias adicionales",
|
||||
"installRequirements": "Instalar requisitos",
|
||||
"links": "Enlaces",
|
||||
"downloadPackage": "Descargar paquete",
|
||||
"installed": "Instalada",
|
||||
"notInstalled": "No instalada",
|
||||
"open": "Abrir",
|
||||
"loadingDetails": "Cargando detalles de la aplicaci\u00f3n...",
|
||||
"notFoundTitle": "Aplicaci\u00f3n no encontrada",
|
||||
"notFoundMessage": "No se pudo encontrar la aplicaci\u00f3n solicitada en la tienda",
|
||||
"installFailed": "La instalaci\u00f3n fall\u00f3",
|
||||
"depRunning": "En ejecuci\u00f3n",
|
||||
"depStopped": "Instalada pero detenida",
|
||||
"depNotInstalled": "No instalada"
|
||||
},
|
||||
"goalDetail": {
|
||||
"backToGoals": "Volver a objetivos",
|
||||
"notFound": "Objetivo no encontrado.",
|
||||
"stepOf": "Paso {current} de {total}",
|
||||
"notStarted": "No iniciado",
|
||||
"inProgress": "En progreso",
|
||||
"completed": "Completado",
|
||||
"syncTitle": "La soberan\u00eda requiere un poco de paciencia",
|
||||
"syncMessage": "Su nodo Bitcoin est\u00e1 sincronizando toda la cadena de bloques para que no tenga que confiar en nadie m\u00e1s. Esto toma 2\u20133 d\u00edas en la primera ejecuci\u00f3n. Mientras tanto, puede explorar su nodo, configurar su identidad o respaldar sus claves.",
|
||||
"installApp": "Instalar {name}",
|
||||
"openAndConfigure": "Abrir y configurar",
|
||||
"iveDoneThis": "Ya lo hice",
|
||||
"complete": "Completar",
|
||||
"allSet": "\u00a1Todo listo!",
|
||||
"goalReady": "{title} est\u00e1 listo para usar.",
|
||||
"viewMyServices": "Ver mis servicios"
|
||||
},
|
||||
"monitoring": {
|
||||
"title": "Monitoreo",
|
||||
"subtitle": "M\u00e9tricas del sistema en tiempo real y uso de recursos de contenedores",
|
||||
"cpuUsage": "Uso de CPU (%)",
|
||||
"memoryUsage": "Uso de memoria (%)",
|
||||
"networkIo": "E/S de red (bytes)",
|
||||
"rpcLatency": "Latencia RPC (ms)",
|
||||
"alertHistory": "Historial de alertas",
|
||||
"hideConfig": "Ocultar configuraci\u00f3n",
|
||||
"noAlerts": "No se han disparado alertas",
|
||||
"containerResources": "Recursos de contenedores",
|
||||
"noContainerMetrics": "No hay m\u00e9tricas de contenedores disponibles",
|
||||
"systemHealth": "Salud del sistema",
|
||||
"load": "Carga:",
|
||||
"exportCsv": "Exportar CSV",
|
||||
"exportJson": "Exportar JSON",
|
||||
"diskUsage": "Uso de disco",
|
||||
"ramUsage": "Uso de RAM",
|
||||
"containerCrash": "Fallo de contenedor",
|
||||
"rpcLatencySpike": "Pico de latencia RPC",
|
||||
"sslCertExpiry": "Vencimiento de certificado SSL",
|
||||
"refreshFooter": "Actualizando cada 5 segundos",
|
||||
"wsConnections": "Conexiones WS: {count}",
|
||||
"cpu": "CPU",
|
||||
"memory": "Memoria",
|
||||
"network": "Red"
|
||||
},
|
||||
"systemUpdate": {
|
||||
"title": "Actualizaci\u00f3n del sistema",
|
||||
"subtitle": "Administre las actualizaciones de software de su nodo Archipelago",
|
||||
"currentSystem": "Sistema actual",
|
||||
"updateAvailable": "Actualizaci\u00f3n disponible",
|
||||
"upToDate": "El sistema est\u00e1 actualizado",
|
||||
"downloading": "Descargando actualizaci\u00f3n...",
|
||||
"applying": "Aplicando actualizaci\u00f3n...",
|
||||
"updateSchedule": "Programa de actualizaciones",
|
||||
"actions": "Acciones",
|
||||
"lastChecked": "\u00daltima verificaci\u00f3n",
|
||||
"new": "Nuevo",
|
||||
"changelog": "Registro de cambios",
|
||||
"componentsToUpdate": "{count} componente(s) para actualizar",
|
||||
"manualOnly": "Solo manual",
|
||||
"manualOnlyDesc": "Nunca verificar autom\u00e1ticamente. Usted controla cu\u00e1ndo buscar e instalar actualizaciones.",
|
||||
"dailyCheck": "Verificaci\u00f3n diaria",
|
||||
"dailyCheckDesc": "Buscar actualizaciones una vez al d\u00eda. Usted decide cu\u00e1ndo instalar.",
|
||||
"autoApply": "Aplicaci\u00f3n autom\u00e1tica",
|
||||
"autoApplyDesc": "Buscar diariamente y aplicar actualizaciones autom\u00e1ticamente a las 3 AM. Los servicios se reinician seg\u00fan sea necesario.",
|
||||
"downloadUpdate": "Descargar actualizaci\u00f3n",
|
||||
"applyUpdate": "Aplicar actualizaci\u00f3n",
|
||||
"checkForUpdates": "Buscar actualizaciones",
|
||||
"checking": "Verificando...",
|
||||
"rollback": "Revertir a la versi\u00f3n anterior",
|
||||
"backToSettings": "Volver a configuraci\u00f3n",
|
||||
"percentComplete": "{percent}% completado",
|
||||
"applyWarning": "Instalando componentes y reiniciando servicios. No apague el equipo.",
|
||||
"applyTitle": "\u00bfAplicar actualizaci\u00f3n?",
|
||||
"applyMessage": "El servicio del backend se reiniciar\u00e1. Esto puede tomar un momento.",
|
||||
"rollbackTitle": "\u00bfRevertir versi\u00f3n?",
|
||||
"rollbackMessage": "Esto restaurar\u00e1 la versi\u00f3n anterior. El servicio del backend se reiniciar\u00e1.",
|
||||
"applyNow": "Aplicar ahora",
|
||||
"rollbackButton": "Revertir",
|
||||
"upToDateMessage": "Su sistema est\u00e1 actualizado. No hay actualizaciones disponibles. Su sistema est\u00e1 ejecutando la \u00faltima versi\u00f3n.",
|
||||
"checkFailed": "Error al buscar actualizaciones. Verifique su conexi\u00f3n a internet.",
|
||||
"downloadSuccess": "Se descargaron {count} componente(s) ({size}MB)",
|
||||
"downloadFailed": "La descarga fall\u00f3. Intente de nuevo.",
|
||||
"applySuccess": "Actualizaci\u00f3n aplicada. El servicio se reiniciar\u00e1 en un momento.",
|
||||
"applyFailed": "Error al aplicar la actualizaci\u00f3n. Puede intentar de nuevo o revertir.",
|
||||
"rollbackSuccess": "Se revirti\u00f3 a la versi\u00f3n anterior. El servicio se reiniciar\u00e1.",
|
||||
"rollbackFailed": "Error al revertir."
|
||||
},
|
||||
"kiosk": {
|
||||
"pressEsc": "Presione ESC para salir",
|
||||
"online": "En l\u00ednea",
|
||||
"offline": "Sin conexi\u00f3n",
|
||||
"escHint": "Presione ESC para salir de las aplicaciones",
|
||||
"navHint": "Use las teclas de flecha para navegar"
|
||||
},
|
||||
"kioskRecovery": {
|
||||
"title": "Recuperaci\u00f3n de Archipelago",
|
||||
"subtitle": "Modo de recuperaci\u00f3n del kiosco \u2014 no requiere autenticaci\u00f3n",
|
||||
"serverAddress": "Direcci\u00f3n del servidor",
|
||||
"webUi": "Interfaz web: http://{address}",
|
||||
"scanForMobile": "Escanee para acceso m\u00f3vil",
|
||||
"backend": "Backend",
|
||||
"unreachable": "Inaccesible",
|
||||
"containers": "Contenedores",
|
||||
"goToLogin": "Ir a inicio de sesi\u00f3n",
|
||||
"lastChecked": "\u00daltima verificaci\u00f3n: {time}"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user