2026-03-11 13:45:59 +00:00
{
"common" : {
"cancel" : "Cancel" ,
"save" : "Save" ,
"close" : "Close" ,
"copy" : "Copy" ,
"copied" : "Copied" ,
"copiedBang" : "Copied!" ,
"loading" : "Loading..." ,
"retry" : "Retry" ,
"refresh" : "Refresh" ,
"install" : "Install" ,
"installing" : "Installing..." ,
"uninstall" : "Uninstall" ,
2026-03-14 19:08:09 +00:00
"uninstalling" : "Uninstalling..." ,
2026-03-11 13:45:59 +00:00
"start" : "Start" ,
"stop" : "Stop" ,
"restart" : "Restart" ,
"launch" : "Launch" ,
"starting" : "Starting..." ,
"stopping" : "Stopping..." ,
2026-04-22 08:29:56 -04:00
"update" : "Update" ,
"updating" : "Updating..." ,
2026-03-11 13:45:59 +00:00
"send" : "Send" ,
"sending" : "Sending..." ,
"back" : "Back" ,
"done" : "Done" ,
"manage" : "Manage" ,
"connect" : "Connect" ,
"connecting" : "Connecting..." ,
"disconnect" : "Disconnect" ,
"running" : "running" ,
"stopped" : "stopped" ,
"exited" : "exited" ,
"healthy" : "Healthy" ,
"elevated" : "Elevated" ,
"critical" : "Critical" ,
"connected" : "Connected" ,
"disconnected" : "Disconnected" ,
"active" : "Active" ,
"inactive" : "Inactive" ,
"synced" : "Synced" ,
"enabled" : "Enabled" ,
"disabled" : "Disabled" ,
"dismiss" : "Dismiss" ,
"apply" : "Apply" ,
"configure" : "Configure" ,
"export" : "Export" ,
"delete" : "Delete" ,
"remove" : "Remove" ,
"error" : "Error" ,
"version" : "Version" ,
"status" : "Status" ,
"category" : "Category" ,
"developer" : "Developer" ,
"license" : "License" ,
"never" : "Never" ,
"notAvailable" : "Not Available" ,
"goBack" : "Go back" ,
"skipToContent" : "Skip to main content" ,
"continue" : "Continue" ,
"verify" : "Verify" ,
"create" : "Create" ,
"restore" : "Restore" ,
"disabling" : "Disabling..." ,
"creating" : "Creating..." ,
"restoring" : "Restoring..." ,
"manageUpdates" : "Manage Updates" ,
"enableAll" : "Enable All" ,
"networkDiagnostics" : "Network Diagnostics" ,
"network" : "Network" ,
"saveConfiguration" : "Save Configuration" ,
"sendTest" : "Send Test"
} ,
"login" : {
"title" : "Welcome to Archipelago" ,
"setupTitle" : "Set Up Your Node" ,
"twoFactorTitle" : "Two-Factor Authentication" ,
"password" : "Password" ,
"confirmPassword" : "Confirm Password" ,
"enterPasswordPlaceholder" : "Enter your password" ,
"enterPasswordSetup" : "Enter a password (min 8 characters)" ,
"confirmPasswordPlaceholder" : "Confirm your password" ,
"setupButton" : "Set Up Node" ,
"settingUp" : "Setting up..." ,
"loginButton" : "Login" ,
"loggingIn" : "Logging in..." ,
"verifyButton" : "Verify" ,
"verifying" : "Verifying..." ,
"useAuthCode" : "Use authenticator code" ,
"useBackupCode" : "Use a backup code instead" ,
"totpInstruction" : "Enter the 6-digit code from your authenticator app" ,
"totpPlaceholder" : "000000" ,
"backupCodePlaceholder" : "XXXX-XXXX" ,
"serverStarting" : "Server starting up..." ,
"replayIntro" : "Replay Intro" ,
"onboarding" : "Onboarding" ,
"resetting" : "Resetting..." ,
"recoveryNote" : "Password recovery requires SSH access to the server." ,
"errorMinLength" : "Password must be at least 8 characters" ,
"errorMismatch" : "Passwords do not match" ,
"errorServerStarting" : "Server is starting up. Please try again in a moment." ,
"errorSetupFailed" : "Setup failed. Please try again." ,
"errorLoginFailed" : "Login failed. Please check your password." ,
"errorInvalidCode" : "Invalid code. Please try again." ,
"totpLabel" : "Two-factor authentication code"
} ,
"home" : {
"title" : "Welcome Noderunner" ,
"subtitle" : "Here's an overview of your sovereign life" ,
"dashboardTab" : "Dashboard" ,
"setupTab" : "Setup" ,
"myApps" : "My Apps" ,
"myAppsDesc" : "Manage your installed applications" ,
2026-06-11 00:24:40 -04:00
"recommendedApps" : "Recommended Apps" ,
"recommendedAppsDesc" : "Add useful App Store apps to your Home screen" ,
2026-03-11 13:45:59 +00:00
"cloud" : "Cloud" ,
"cloudDesc" : "Cloud services and storage" ,
"network" : "Network" ,
2026-06-11 00:24:40 -04:00
"networkDesc" : "Network infrastructure and mesh services" ,
2026-03-11 13:45:59 +00:00
"web5" : "Web5" ,
"web5Desc" : "Decentralized identity and data protocols" ,
"system" : "System" ,
"quickStartGoals" : "Quick Start Goals" ,
"quickStartDesc" : "Not sure where to start? Try a guided setup." ,
"installed" : "Installed" ,
"runningLabel" : "Running" ,
"storageUsed" : "Storage Used" ,
"folders" : "Folders" ,
"servicesStatus" : "Services Status" ,
"connectivity" : "Connectivity" ,
"runningApps" : "Running Apps" ,
"didStatus" : "DID Status" ,
"dwnSync" : "DWN Sync" ,
"credentials" : "Credentials" ,
"cpu" : "CPU" ,
"ram" : "RAM" ,
"disk" : "Disk" ,
"browseStore" : "Browse Store" ,
"manageApps" : "Manage Apps" ,
"viewFolders" : "View Folders" ,
"uploadFiles" : "Upload Files" ,
"manageNetwork" : "Manage Network" ,
"manageWeb5" : "Manage Web5" ,
"openAI" : "Open AI Assistant" ,
"noApps" : "No Apps" ,
"allRunning" : "All Running" ,
"systemMonitoring" : "System monitoring" ,
"updateAvailable" : "Update Available: v{version}" ,
"updateNow" : "Update Now" ,
"goToApps" : "Go to Apps" ,
2026-06-11 00:24:40 -04:00
"goToAppStore" : "Go to App Store" ,
2026-03-11 13:45:59 +00:00
"goToCloud" : "Go to Cloud" ,
"goToNetwork" : "Go to Network" ,
"goToWeb5" : "Go to Web5" ,
"goToSettings" : "Go to Settings"
} ,
"apps" : {
"title" : "My Apps" ,
"subtitle" : "Manage your installed applications" ,
"searchPlaceholder" : "Search installed apps..." ,
"noAppsTitle" : "No Apps Installed" ,
"noAppsMessage" : "Get started by browsing the app store" ,
"browseAppStore" : "Browse App Store" ,
"noResults" : "No apps matching \"{query}\"" ,
"uninstallTitle" : "Uninstall App?" ,
"uninstallConfirm" : "Are you sure you want to uninstall {name}? This will remove the app and stop its container." ,
2026-06-11 00:24:40 -04:00
"deleteAppDataLabel" : "Delete app data and reset it" ,
"deleteAppDataHelp" : "Check this to remove the app's data, backups, and persistent files. Leave it off to reinstall later without starting over." ,
2026-03-11 13:45:59 +00:00
"dismissError" : "Dismiss error" ,
"searchLabel" : "Search installed apps"
} ,
"settings" : {
"title" : "Settings" ,
"subtitle" : "Configure your Archipelago experience" ,
"account" : "Account" ,
"interfaceMode" : "Interface Mode" ,
"claudeAuth" : "Claude Authentication" ,
"aiDataAccess" : "AI Data Access" ,
2026-06-11 00:24:40 -04:00
"serverName" : "Hostname" ,
2026-03-11 13:45:59 +00:00
"sessionStatus" : "Session Status" ,
"yourDid" : "Your DID" ,
"onionAddress" : "Node .onion Address" ,
"loggedIn" : "Currently logged in" ,
"didHelper" : "Decentralized identifier for passwordless auth" ,
"onionHelper" : "Onion address for node interface and peer discovery over Tor" ,
2026-03-29 12:44:13 +01:00
"changePassword" : "Set Password" ,
2026-03-11 13:45:59 +00:00
"enable2fa" : "Enable 2FA" ,
"disable2fa" : "Disable 2FA" ,
"logout" : "Logout" ,
"loggingOut" : "Logging out..." ,
"twoFactorAuth" : "Two-Factor Authentication" ,
"twoFaProtect" : "Protect your account with an authenticator app" ,
2026-03-29 12:44:13 +01:00
"changePasswordTitle" : "Set Password" ,
"changePasswordDesc" : "Set a new password for web login and SSH access. Default password is 'password123'. Use a strong password (12+ chars, upper, lower, digit, special)." ,
2026-03-11 13:45:59 +00:00
"currentPassword" : "Current Password" ,
"newPassword" : "New Password" ,
"confirmNewPassword" : "Confirm New Password" ,
"passwordPlaceholder" : "12+ chars, upper, lower, digit, special" ,
"updateSshCheckbox" : "Also update SSH password (recommended)" ,
"updatePassword" : "Update Password" ,
"updatingPassword" : "Updating..." ,
"setup2faTitle" : "Two-Factor Authentication" ,
"setup2faPasswordPrompt" : "Enter your password to begin setup." ,
"scanQrCode" : "Scan QR Code" ,
"scanQrInstruction" : "Scan this QR code with your authenticator app (Google Authenticator, Authy, etc.), then enter the 6-digit code." ,
"manualEntryKey" : "Manual entry key:" ,
"verifyAndEnable" : "Verify & Enable" ,
"saveBackupCodes" : "Save Your Backup Codes" ,
"backupCodesInstruction" : "Store these codes safely. Each can be used once if you lose access to your authenticator app." ,
"copyAllCodes" : "Copy All Codes" ,
"disable2faTitle" : "Disable Two-Factor Authentication" ,
"disable2faDesc" : "Enter your password and a current TOTP code to disable 2FA." ,
"authenticatorCode" : "Authenticator Code" ,
"webhooks" : "Webhooks" ,
"webhooksDesc" : "Get notified when important events happen on your node" ,
"webhookUrl" : "Webhook URL" ,
"webhookUrlPlaceholder" : "https://example.com/webhook" ,
"webhookSecret" : "Secret (for HMAC signing)" ,
"webhookSecretPlaceholder" : "Optional shared secret" ,
"webhookEvents" : "Events" ,
"containerCrash" : "Container Crash" ,
"updateAvailableEvent" : "Update Available" ,
"diskWarning" : "Disk Warning" ,
"backupComplete" : "Backup Complete" ,
"saveWebhook" : "Save" ,
"savingWebhook" : "Saving..." ,
"testWebhook" : "Test" ,
"testingWebhook" : "Testing..." ,
"webhookSaved" : "Webhook configuration saved" ,
"webhookTestSent" : "Test webhook sent successfully" ,
"systemUpdates" : "System Updates" ,
"backup" : "Backup & Restore" ,
"backupDesc" : "Back up your node data to external storage" ,
"createBackup" : "Create Backup" ,
"creatingBackup" : "Creating..." ,
"restoreBackup" : "Restore Backup" ,
"deleteBackup" : "Delete backup" ,
"backupCreated" : "Backup created successfully" ,
"sendMessage" : "Send Message" ,
"sendMessageTitle" : "Send Broadcast Message" ,
"messagePlaceholder" : "Enter your message..." ,
"messageSent" : "Message sent" ,
"claudeConnected" : "Connected to Claude" ,
"claudeDisconnected" : "Not connected" ,
"claudeApiKey" : "API Key" ,
"claudeApiKeyPlaceholder" : "Enter your Anthropic API key" ,
"claudeSave" : "Save Key" ,
"advancedMode" : "Advanced Mode" ,
"beginnerMode" : "Beginner Mode" ,
"advancedModeDesc" : "Show all system controls and developer tools" ,
"beginnerModeDesc" : "Simplified interface with guided experience" ,
"networkSettings" : "Network Settings" ,
"torEnabled" : "Tor Enabled" ,
"torAddress" : "Tor Address" ,
"interfaceModeDesc" : "Choose how you want to interact with your node." ,
"claudeAuthDesc" : "Connect your Claude Max account to enable AI chat features." ,
"connectionStatus" : "Connection Status" ,
"notConnected" : "Not connected" ,
"reAuthenticate" : "Re-authenticate" ,
"loginWithClaude" : "Login with Claude" ,
"aiDataAccessDesc" : "Control what data the AI assistant can see. All categories are off by default." ,
"enableAllDesc" : "Grant access to all data categories at once" ,
"systemUpdatesDesc" : "Check for and install software updates" ,
"webhookNotifications" : "Webhook Notifications" ,
"webhookNotificationsDesc" : "Get push notifications for critical events via webhook" ,
"enableWebhooks" : "Enable webhooks" ,
"disableWebhooks" : "Disable webhooks" ,
"webhookUrlLabel" : "Webhook URL" ,
"webhookSecretLabel" : "Secret (optional, for HMAC-SHA256 signing)" ,
"eventsToNotify" : "Events to notify" ,
"containerCrashDesc" : "A running container stops unexpectedly" ,
"updateAvailableDesc" : "A new system or app update is ready" ,
"diskWarningDesc" : "Disk usage exceeds warning threshold" ,
"backupCompleteDesc" : "A scheduled or manual backup finishes" ,
"backupRestoreDesc" : "Encrypted backups of your identity, settings, and data" ,
"loadingBackups" : "Loading backups..." ,
"noBackups" : "No backups yet. Create one to protect your node data." ,
"systemBackup" : "System Backup" ,
"createEncryptedBackup" : "Create Encrypted Backup" ,
"encryptionPassphrase" : "Encryption Passphrase" ,
"enterPassphrase" : "Enter a strong passphrase" ,
"descriptionOptional" : "Description (optional)" ,
"descriptionPlaceholder" : "e.g. Before update" ,
"restoreBackupTitle" : "Restore Backup" ,
"restoreWarning" : "This will overwrite current node data. Make sure you have the correct passphrase." ,
"enterBackupPassphrase" : "Enter backup passphrase" ,
"networkDesc" : "Network connectivity, UPnP, and diagnostics" ,
"webhookSecretPlaceholderFull" : "Shared secret for payload signing" ,
"backupCreatedSuccess" : "Backup created successfully" ,
"backupCreateFailed" : "Failed to create backup" ,
"backupVerifiedOk" : "Backup verified — integrity OK" ,
"backupVerifyFailed" : "Verification failed: {error}" ,
"backupVerifyRequestFailed" : "Verification request failed" ,
"backupRestored" : "Backup restored. Restart may be needed." ,
"backupRestoreFailed" : "Restore failed — check passphrase" ,
"backupDeleted" : "Backup deleted" ,
"backupDeleteFailed" : "Failed to delete backup" ,
"noUsbDrives" : "No mounted USB drives found. Insert and mount a USB drive first." ,
"backupCopiedToUsb" : "Backup copied to {path}" ,
"backupUsbFailed" : "Failed to copy backup to USB" ,
"deleteBackupConfirm" : "Delete this backup permanently?" ,
"verifyPassphrasePrompt" : "Enter backup passphrase to verify:" ,
"webhookSaveFailed" : "Failed to save webhook configuration" ,
"webhookTestFailed" : "Test failed: webhook not sent" ,
"webhookSendFailed" : "Failed to send test webhook" ,
"passwordAllFieldsRequired" : "All fields are required" ,
"passwordMismatch" : "New passwords do not match" ,
2026-06-11 00:24:40 -04:00
"passwordUpdatedSuccess" : "Web password updated successfully." ,
"passwordUpdatedSshFailed" : "SSH password update failed:" ,
2026-03-11 13:45:59 +00:00
"passwordChangeFailed" : "Failed to change password" ,
"passwordMinLength" : "Password must be at least 12 characters" ,
"passwordNeedUppercase" : "Password must contain at least one uppercase letter" ,
"passwordNeedLowercase" : "Password must contain at least one lowercase letter" ,
"passwordNeedDigit" : "Password must contain at least one digit" ,
"passwordNeedSpecial" : "Password must contain at least one special character (!@#$%^&* etc.)" ,
"setupFailed" : "Setup failed" ,
"verificationFailed" : "Verification failed" ,
"disableFailed" : "Failed to disable 2FA" ,
"copyToUsb" : "Copy to USB" ,
"diskSpaceWarning" : "Disk Space Warning" ,
"modeEasy" : "Easy" ,
"modeEasyDesc" : "Goal-based interface. Choose what you want to do, and the system handles the rest." ,
"modePro" : "Pro" ,
"modeProDesc" : "Full control over all services. Configure everything manually with all technical details." ,
2026-03-12 00:19:30 +00:00
"modeChat" : "AIUI" ,
2026-03-11 13:45:59 +00:00
"modeChatDesc" : "Conversational AI interface. Manage your node through natural language. Coming soon."
} ,
"marketplace" : {
"title" : "App Store" ,
"subtitle" : "Discover and install apps for your new sovereign life" ,
"curatedTab" : "Curated" ,
"communityTab" : "Community" ,
2026-03-14 04:14:04 +00:00
"nostrCommunityTab" : "Nostr Community" ,
2026-03-11 13:45:59 +00:00
"filterByCategory" : "Filter by Category" ,
"searchPlaceholder" : "Search apps..." ,
"downloading" : "Downloading..." ,
"alreadyInstalled" : "Already Installed" ,
"queryingRelays" : "Querying Nostr relays for apps..." ,
"noCommunityApps" : "No community apps discovered yet." ,
"noResults" : "No apps found in {category} matching \"{query}\"" ,
"noResultsCategory" : "No apps found in {category}" ,
"noResultsSearch" : "No apps matching \"{query}\"" ,
"all" : "All" ,
"community" : "Community" ,
"commerce" : "Commerce" ,
"money" : "Money" ,
"data" : "Data" ,
"homeCategory" : "Home" ,
"auto" : "Auto" ,
"networking" : "Networking" ,
"other" : "Other" ,
"searchApps" : "Search apps" ,
"percentComplete" : "{percent}% complete"
} ,
"dashboard" : {
"mainNav" : "Main navigation" ,
"mobileNav" : "Mobile navigation"
} ,
"chat" : {
"close" : "Close" ,
"aiuiConnected" : "AIUI connected" ,
"closeAssistant" : "Close AI Assistant" ,
"loadingAssistant" : "Loading AI assistant..." ,
"aiAssistant" : "AI Assistant" ,
2026-03-12 00:19:30 +00:00
"notConfigured" : "AI Assistant needs to be enabled before use." ,
"deployCta" : "Go to Settings to configure your AI provider API key, then return here to start chatting."
2026-03-11 13:45:59 +00:00
} ,
"web5" : {
"title" : "Web5" ,
"subtitle" : "Decentralized identity and data protocols" ,
"profitsHelper" : "Earn networking profits by hosting decentralized services" ,
"networkingProfits" : "Networking Profits" ,
"didStatus" : "DID Status" ,
"walletConnection" : "Wallet Connection" ,
"wallet" : "Wallet" ,
"walletSubtitle" : "On-chain, Lightning & Ecash" ,
"nostrRelays" : "Nostr Relays" ,
"connectedNodes" : "Connected Nodes" ,
"bitcoinDomains" : "Bitcoin Domain Names" ,
"domainsSubtitle" : "NIP-05 verified identities" ,
2026-03-14 17:12:41 +00:00
"copyDid" : "Copy" ,
"viewDidDocument" : "View" ,
2026-03-11 13:45:59 +00:00
"createDid" : "Create DID" ,
"creatingDid" : "Creating..." ,
"manageDomains" : "Manage Domains" ,
"relaysConnected" : "{count} connected" ,
"peersKnown" : "{count} peer(s) known" ,
2026-03-14 04:14:04 +00:00
"findNodes" : "Find Nodes" ,
2026-03-11 13:45:59 +00:00
"sendMessage" : "Send Message" ,
"sendMessageTitle" : "Send Message (over Tor)" ,
"to" : "To" ,
"selectPeer" : "Select a peer..." ,
"message" : "Message" ,
"messagePlaceholder" : "Type your message..." ,
"didDocument" : "DID Document" ,
"addContent" : "Add Content" ,
"addContentTitle" : "Add Content" ,
"createIdentity" : "Create Identity" ,
"createIdentityTitle" : "Create Identity" ,
"deleteIdentity" : "Delete Identity" ,
"deleteIdentityTitle" : "Delete Identity" ,
"sendBitcoin" : "Send Bitcoin" ,
"sendBitcoinTitle" : "Send Bitcoin" ,
"receiveBitcoin" : "Receive Bitcoin" ,
"receiveBitcoinTitle" : "Receive Bitcoin" ,
"domains" : "Domains" ,
"domainsTitle" : "Domains" ,
"relays" : "Relays" ,
"relaysTitle" : "Relays" ,
"totalEarned" : "Total Earned" ,
"monthlyAvg" : "Monthly Avg" ,
"ecashBalance" : "Ecash Balance" ,
"onChain" : "On-chain" ,
"lightning" : "Lightning" ,
"ecash" : "Ecash" ,
"identityName" : "Identity Name" ,
"identityNamePlaceholder" : "Enter identity name" ,
"contentTitle" : "Title" ,
"contentTitlePlaceholder" : "Enter content title" ,
"amount" : "Amount" ,
"amountPlaceholder" : "Enter amount in sats" ,
"address" : "Address" ,
"addressPlaceholder" : "Enter Bitcoin address" ,
"deleteIdentityConfirm" : "Are you sure you want to delete this identity? This action cannot be undone." ,
"confirm" : "Confirm" ,
"noRelays" : "No relays connected" ,
"noDomains" : "No domains configured" ,
"addRelay" : "Add Relay" ,
"addDomain" : "Add Domain" ,
"relayUrl" : "Relay URL" ,
"relayUrlPlaceholder" : "wss://relay.example.com" ,
"domainName" : "Domain Name" ,
"domainNamePlaceholder" : "user{'@'}example.com" ,
"peerNodesDescription" : "Peer nodes discovered via Nostr. Messages sent over Tor." ,
"nodeVisibility" : "Node Visibility" ,
"nodeVisibilityDesc" : "Control how other nodes can discover you" ,
"yourTorAddress" : "Your Tor address" ,
"discoverableWarning" : "Making your node discoverable lets other Archipelago users find and connect with you." ,
"noPeers" : "No peers yet. Add a peer manually or use Discover to find nodes on Nostr." ,
"noMessages" : "No messages yet. Messages from peers will appear here." ,
"noRequests" : "No pending connection requests." ,
"accept" : "Accept" ,
"reject" : "Reject" ,
"discovering" : "Discovering..." ,
"discoverNodes" : "Discover Nodes on Nostr" ,
"refreshMessages" : "Refresh Messages" ,
"refreshRequests" : "Refresh Requests" ,
"torServices" : "Tor Services" ,
"torServicesDesc" : "Hidden services exposing your apps over Tor" ,
"noTorServices" : "No Tor hidden services configured." ,
"content" : "Content" ,
"contentDesc" : "Share and browse content with peers over Tor" ,
"noSharedContent" : "No shared content" ,
"addFilesToShare" : "Add files to share with connected peers." ,
"browse" : "Browse" ,
"connectingToPeer" : "Connecting to peer over Tor..." ,
"selectPeerToBrowse" : "Select a peer to browse" ,
"choosePeerDesc" : "Choose a connected peer to see their shared content." ,
"peerNoContent" : "This peer has no shared content." ,
"identities" : "Identities" ,
"identitiesDesc" : "Sovereign digital identities (DID:key)" ,
"noIdentities" : "No identities yet" ,
"createFirstIdentity" : "Create your first sovereign digital identity." ,
"deleting" : "Deleting..." ,
"decentralizedWebNode" : "Decentralized Web Node" ,
"dwnDescription" : "Personal data store with DID-based access control" ,
"manageDwn" : "Manage DWN" ,
"syncing" : "Syncing..." ,
"syncNow" : "Sync Now" ,
"verifiableCredentials" : "Verifiable Credentials" ,
"verifiableCredentialsDesc" : "Issue and manage W3C Verifiable Credentials" ,
"noCredentials" : "No credentials issued yet" ,
"messageSent" : "Message sent over Tor!" ,
"failedToSend" : "Failed to send" ,
"pasteInvoice" : "Paste a Lightning invoice (BOLT11)" ,
"enterBitcoinAddress" : "Enter a Bitcoin address" ,
"sendFailed" : "Send failed" ,
"broadcastViaHwWallet" : "Broadcast via hardware wallet" ,
"broadcastFailed" : "Broadcast failed" ,
"psbtCopied" : "PSBT copied!" ,
"enterAmount" : "Enter an amount" ,
"pasteEcashToken" : "Paste an ecash token" ,
"receiveFailed" : "Receive failed" ,
"ecashTokenCopied" : "Ecash token copied" ,
"contentAdded" : "Content added" ,
"failedToAddContent" : "Failed to add content" ,
"contentRemoved" : "Content removed" ,
"failedToRemoveContent" : "Failed to remove content" ,
"failedToUpdatePricing" : "Failed to update pricing" ,
"failedToUpdatePrice" : "Failed to update price" ,
"failedToConnectPeer" : "Failed to connect to peer" ,
"onionAddressCopied" : "Onion address copied" ,
"streamUrlCopied" : "Stream URL copied" ,
"playerError" : "Unable to load media. The content may only be accessible over Tor." ,
"connectionAccepted" : "Connection accepted" ,
"failedToAcceptRequest" : "Failed to accept request" ,
"requestRejected" : "Request rejected" ,
"failedToRejectRequest" : "Failed to reject request" ,
"visibilitySetTo" : "Visibility set to {level}" ,
"failedToUpdateVisibility" : "Failed to update visibility" ,
"didCopied" : "DID copied to clipboard" ,
"defaultIdentityUpdated" : "Default identity updated" ,
"failedToSetDefault" : "Failed to set default" ,
"identityCreated" : "Identity created" ,
"failedToCreateIdentity" : "Failed to create identity" ,
"identityDeleted" : "Identity deleted" ,
"failedToDeleteIdentity" : "Failed to delete identity" ,
"registrationFailed" : "Registration failed" ,
"removeFailed" : "Remove failed" ,
"failedToAddRelay" : "Failed to add relay" ,
"failedToRemoveRelay" : "Failed to remove relay" ,
"failedToToggleRelay" : "Failed to toggle relay" ,
"downloadUrlCopied" : "Download URL copied" ,
"hardwareWalletDetected" : "Hardware Wallet Detected" ,
"namesRegistered" : "Names Registered" ,
"expiringSoon" : "Expiring Soon" ,
"nostrRelaysDesc" : "Decentralized social networking relays" ,
"relaysConnectedLabel" : "Relays Connected" ,
"totalRelays" : "Total Relays" ,
"freeAccessDesc" : "Available to all peers for free" ,
"peersOnlyAccessDesc" : "Available only to connected peers" ,
"signWithHwWallet" : "Sign with Hardware Wallet" ,
"createsPsbt" : "Creates a PSBT for external signing" ,
"generateFreshAddress" : "Generate a fresh Bitcoin address" ,
"registerNewName" : "Register New Name" ,
"verifyNip05" : "Verify NIP-05" ,
"peers" : "Peers" ,
2026-06-11 00:24:40 -04:00
"trusted" : "Trusted" ,
"observer" : "Observer" ,
"observers" : "Observers" ,
"noObservers" : "No observers yet." ,
2026-03-11 13:45:59 +00:00
"messages" : "Messages" ,
"requests" : "Requests" ,
"myContent" : "My Content" ,
"browsePeers" : "Browse Peers" ,
"verified" : "Verified" ,
"invalid" : "Invalid" ,
"stream" : "Stream" ,
"download" : "Download"
} ,
"appDetails" : {
"backToApps" : "Back to My Apps" ,
"backToStore" : "Back to App Store" ,
"screenshots" : "Screenshots" ,
"screenshotPlaceholder" : "Screenshot placeholders - images coming soon" ,
"about" : "About {name}" ,
"features" : "Features" ,
"information" : "Information" ,
"requirements" : "Requirements" ,
2026-06-11 00:24:40 -04:00
"setupInstructions" : "Setup Instructions" ,
2026-03-11 13:45:59 +00:00
"ram" : "RAM" ,
"ramDesc" : "Minimum 512MB" ,
"storage" : "Storage" ,
"storageDesc" : "~100MB" ,
"links" : "Links" ,
"website" : "Website" ,
"sourceCode" : "Source Code" ,
"documentation" : "Documentation" ,
"services" : "Services" ,
"guardian" : "Guardian" ,
"gateway" : "Gateway" ,
"access" : "Access" ,
"lan" : "LAN" ,
"tor" : "Tor" ,
"requiresTor" : "Requires Tor Browser" ,
"channels" : "Channels" ,
"uninstallTitle" : "Uninstall App?" ,
"uninstallConfirm" : "Are you sure you want to uninstall {name}? This will remove the app and stop its container." ,
"notFoundTitle" : "App Not Found" ,
"notFoundMessage" : "The requested application could not be found" ,
"installed" : "Installed" ,
2026-03-11 17:33:42 +00:00
"channels" : "Channels" ,
"noLaunchUrl" : "No launch URL available for this app yet"
2026-03-11 13:45:59 +00:00
} ,
"containerDetails" : {
"back" : "Back" ,
"subtitle" : "Container details and management" ,
"containerInfo" : "Container Information" ,
"actions" : "Actions" ,
"logs" : "Logs" ,
"containerId" : "Container ID" ,
"image" : "Image" ,
"state" : "State" ,
"created" : "Created" ,
"startContainer" : "Start Container" ,
"stopContainer" : "Stop Container" ,
"loadingLogs" : "Loading logs..." ,
"noLogs" : "No logs available"
} ,
"marketplaceDetails" : {
"backToStore" : "Back to App Store" ,
"screenshots" : "Screenshots" ,
"screenshotPlaceholder" : "Screenshot placeholders - images coming soon" ,
"about" : "About {name}" ,
"features" : "Features" ,
"information" : "Information" ,
"requirements" : "Requirements" ,
"noRequirements" : "No additional dependencies required" ,
"installRequirements" : "Install Requirements" ,
"links" : "Links" ,
"downloadPackage" : "Download Package" ,
"installed" : "Installed" ,
"notInstalled" : "Not Installed" ,
"open" : "Open" ,
"loadingDetails" : "Loading app details..." ,
"notFoundTitle" : "App Not Found" ,
"notFoundMessage" : "The requested application could not be found in the marketplace" ,
"installFailed" : "Installation Failed" ,
"depRunning" : "Running" ,
"depStopped" : "Installed but stopped" ,
"depNotInstalled" : "Not installed"
} ,
"goalDetail" : {
"backToGoals" : "Back to Goals" ,
"notFound" : "Goal not found." ,
"stepOf" : "Step {current} of {total}" ,
"notStarted" : "Not Started" ,
"inProgress" : "In Progress" ,
"completed" : "Completed" ,
"syncTitle" : "Sovereignty takes a little patience" ,
"syncMessage" : "Your Bitcoin node is syncing the entire blockchain so you don't have to trust anyone else. This takes 2-3 days on first run. Meanwhile, you can explore your node, set up your identity, or back up your keys." ,
"installApp" : "Install {name}" ,
"openAndConfigure" : "Open & Configure" ,
2026-06-11 00:24:40 -04:00
"checkAndContinue" : "Check & Continue" ,
2026-03-11 13:45:59 +00:00
"iveDoneThis" : "I've Done This" ,
"complete" : "Complete" ,
"allSet" : "All Set!" ,
"goalReady" : "{title} is ready to go." ,
"viewMyServices" : "View My Services"
} ,
"monitoring" : {
"title" : "Monitoring" ,
"subtitle" : "Real-time system metrics and container resource usage" ,
"cpuUsage" : "CPU Usage (%)" ,
"memoryUsage" : "Memory Usage (%)" ,
"networkIo" : "Network I/O (bytes)" ,
"rpcLatency" : "RPC Latency (ms)" ,
"alertHistory" : "Alert History" ,
"hideConfig" : "Hide Config" ,
"noAlerts" : "No alerts fired" ,
"containerResources" : "Container Resources" ,
"noContainerMetrics" : "No container metrics available" ,
"systemHealth" : "System Health" ,
"load" : "Load:" ,
"exportCsv" : "Export CSV" ,
"exportJson" : "Export JSON" ,
"diskUsage" : "Disk Usage" ,
"ramUsage" : "RAM Usage" ,
"containerCrash" : "Container Crash" ,
"rpcLatencySpike" : "RPC Latency Spike" ,
"sslCertExpiry" : "SSL Cert Expiry" ,
"refreshFooter" : "Refreshing every 5 seconds" ,
"wsConnections" : "WS connections: {count}" ,
"cpu" : "CPU" ,
"memory" : "Memory" ,
"network" : "Network"
} ,
"systemUpdate" : {
"title" : "System Update" ,
"subtitle" : "Manage software updates for your Archipelago node" ,
"currentSystem" : "Current System" ,
"updateAvailable" : "Update Available" ,
"upToDate" : "System is up to date" ,
"downloading" : "Downloading Update..." ,
"applying" : "Applying Update..." ,
"updateSchedule" : "Update Schedule" ,
"actions" : "Actions" ,
"lastChecked" : "Last Checked" ,
"new" : "New" ,
"changelog" : "Changelog" ,
"componentsToUpdate" : "{count} component(s) to update" ,
"manualOnly" : "Manual Only" ,
"manualOnlyDesc" : "Never check automatically. You control when to check and install updates." ,
"dailyCheck" : "Daily Check" ,
"dailyCheckDesc" : "Check for updates once per day. You decide when to install." ,
"autoApply" : "Auto-Apply" ,
"autoApplyDesc" : "Check daily and automatically install updates at 3 AM. Service restarts as needed." ,
"downloadUpdate" : "Download Update" ,
2026-04-20 11:25:10 -04:00
"applyUpdate" : "Install Update" ,
2026-03-11 13:45:59 +00:00
"checkForUpdates" : "Check for Updates" ,
"checking" : "Checking..." ,
2026-04-20 16:40:25 -04:00
"rollback" : "Rollback Available" ,
2026-03-11 13:45:59 +00:00
"backToSettings" : "Back to Settings" ,
"percentComplete" : "{percent}% complete" ,
"applyWarning" : "Installing components and restarting services. Do not power off." ,
2026-04-20 11:25:10 -04:00
"applyTitle" : "Install Update?" ,
2026-03-11 13:45:59 +00:00
"applyMessage" : "The backend service will restart. This may take a moment." ,
"rollbackTitle" : "Rollback Version?" ,
"rollbackMessage" : "This will restore the previous version. The backend service will restart." ,
2026-04-20 11:25:10 -04:00
"applyNow" : "Install Now" ,
2026-03-11 13:45:59 +00:00
"rollbackButton" : "Rollback" ,
"upToDateMessage" : "Your system is up to date. No updates available. Your system is running the latest version." ,
"checkFailed" : "Failed to check for updates. Check your internet connection." ,
"downloadSuccess" : "Downloaded {count} component(s) ({size}MB)" ,
"downloadFailed" : "Download failed. Please try again." ,
"applySuccess" : "Update applied. The service will restart momentarily." ,
"applyFailed" : "Failed to apply update. You can try again or rollback." ,
"rollbackSuccess" : "Rolled back to previous version. Service will restart." ,
2026-04-20 06:22:29 -04:00
"rollbackFailed" : "Rollback failed." ,
"pullAndRebuild" : "Pull & Rebuild" ,
2026-04-20 16:40:25 -04:00
"finishingDownload" : "Finishing download — verifying checksum…" ,
"overlayApplying" : "Installing update…" ,
"overlayRestarting" : "Restarting server…" ,
"overlayReconnecting" : "Reconnecting to the new version…" ,
"overlayReady" : "Update installed — reloading…" ,
"overlayStalled" : "Taking longer than expected" ,
"overlayTarget" : "Installing v{version}" ,
"overlayReloadNow" : "Reload now" ,
2026-04-20 06:22:29 -04:00
"gitMethodHint" : "This node builds from source. Update will git-pull, rebuild the backend and UI, then restart — takes a few minutes." ,
"gitApplyTitle" : "Pull & Rebuild?" ,
"gitApplyMessage" : "Archipelago will pull the latest code, rebuild, and restart. This can take several minutes and the UI will be briefly unavailable." ,
2026-04-20 19:10:34 -04:00
"gitApplyStarted" : "Update started. The backend will rebuild and restart — this can take a few minutes." ,
"cancelDownload" : "Cancel Download" ,
"cancelingDownload" : "Canceling…" ,
"cancelDownloadTitle" : "Cancel Download?" ,
"cancelDownloadConfirm" : "This will stop the current download and discard the partial file. You can start again from scratch afterwards." ,
"cancelDownloadButton" : "Cancel Download" ,
"cancelDownloadSuccess" : "Download canceled. You can try again." ,
"cancelDownloadFailed" : "Failed to cancel download." ,
"downloadStalled" : "Download appears stuck — try Cancel and start again."
2026-03-11 13:45:59 +00:00
} ,
2026-03-12 00:19:30 +00:00
"kiosk" : {
"pressEsc" : "Press ESC to exit" ,
"online" : "Online" ,
"offline" : "Offline" ,
"escHint" : "Press ESC to exit apps" ,
"navHint" : "Use arrow keys to navigate"
} ,
2026-03-11 13:45:59 +00:00
"kioskRecovery" : {
"title" : "Archipelago Recovery" ,
"subtitle" : "Kiosk failsafe — no authentication required" ,
"serverAddress" : "Server Address" ,
"webUi" : "Web UI: http://{address}" ,
"scanForMobile" : "Scan for mobile access" ,
"backend" : "Backend" ,
"unreachable" : "Unreachable" ,
"containers" : "Containers" ,
"goToLogin" : "Go to Login" ,
"lastChecked" : "Last checked: {time}"
security+feat: v1.3.0 — pentest remediation, container reliability, UI overhaul
Security (33 pentest findings addressed):
- CRITICAL: backend binds 127.0.0.1, path traversal in tor.rs/dwn fixed
- HIGH: federation requires signatures, XSS login redirect, RBAC viewer restricted
- HIGH: tar slip prevention, S3 SSRF validation, backup ID validation
- MEDIUM: remember-me random secret, TOTP session rotation, password re-auth
- LOW: CSP unsafe-inline removed, CORS dev-only, onion/webhook validation
Container reliability:
- Memory limits on all 37 containers (OOM prevention)
- Exited vs stopped state distinction with health-aware status badges
- Crash recovery coordination (no more restart cascade)
- User-stopped tracking survives reboots
- Tiered boot recovery (databases → core → services → apps)
UI:
- Wallet TransactionsModal, health-aware app status badges
- Restart button on containers, exited/crashed red state
- Mesh view overhaul, glass button updates, BaseModal/ToggleSwitch
- Apps sticky header removed, dev faucet, mutable mock wallet
Infrastructure:
- LND REST port 8080 exposed over Tor (LND Connect fix)
- Nginx cookie_session fix, deploy script Tor config updated
- Dev environment: podman auto-start, boot mode simulation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 12:44:31 +00:00
} ,
"receiveBitcoin" : {
"onChain" : "On-Chain" ,
"lightning" : "Lightning" ,
"ecash" : "Ecash" ,
"amountSats" : "Amount (sats)" ,
"memoOptional" : "Memo (optional)" ,
"memoPlaceholder" : "Payment for..." ,
"invoiceShareLabel" : "Invoice (share with sender):" ,
"yourBitcoinAddress" : "Your Bitcoin address:" ,
"pasteEcashToken" : "Paste ecash token" ,
"processing" : "Processing..." ,
"generateAddress" : "Generate Address" ,
"createInvoice" : "Create Invoice" ,
"receive" : "Receive" ,
"enterAnAmount" : "Enter an amount" ,
"pasteAnEcashToken" : "Paste an ecash token" ,
"tokenReceivedSuccess" : "Token received successfully!"
} ,
"sendBitcoin" : {
"onChain" : "On-chain" ,
"auto" : "Auto" ,
"lightning" : "Lightning" ,
"ecash" : "Ecash" ,
"autoMethodDesc" : "Auto-selects method based on amount: ecash < 1k sats, Lightning 1k\u2013500k, on-chain > 500k" ,
"amountSats" : "Amount (sats)" ,
"lightningInvoice" : "Lightning Invoice (BOLT11)" ,
"bitcoinAddress" : "Bitcoin Address" ,
"tokenShareLabel" : "Token (share with recipient):" ,
"sentTx" : "Sent! TX: {txid}" ,
"paidHash" : "Paid! Hash: {hash}"
} ,
"transactions" : {
"title" : "Transactions" ,
"noTransactionsYet" : "No transactions yet" ,
"unconfirmed" : "Unconfirmed" ,
"confirmations" : "{count} conf" ,
"justNow" : "just now" ,
"minutesAgo" : "{count}m ago" ,
"hoursAgo" : "{count}h ago" ,
"daysAgo" : "{count}d ago"
} ,
"easyHome" : {
"beginner" : "Beginner" ,
"intermediate" : "Intermediate" ,
"done" : "Done" ,
"inProgress" : "In Progress" ,
"start" : "Start"
2026-03-11 13:45:59 +00:00
}
}