package com.bitcointxoko.gudariwallet.i18n import cafe.adriel.lyricist.LyricistStrings import kotlin.String @LyricistStrings(languageTag = "en", default = true) val EnHomeStrings = AppStrings( // ── WalletScreen ────────────────────────────────────────────────────────── tabReceive = "Receive", tabSend = "Send", scanContentDescription = "Scan", dismissContentDescription = "Dismiss", clipboardInvoiceDetected = "Invoice detected in clipboard", clipboardLnurlDetected = "LNURL detected in clipboard", clipboardAddressDetected = "Lightning Address detected in clipboard", clipboardPaymentDetected = "Payment detected in clipboard", clipboardTapToOpen = "Tap to open", clipboardTapToPay = "Tap to pay", nfcInvoiceDetected = "Invoice detected via NFC", nfcLnurlDetected = "LNURL detected via NFC", nfcAddressDetected = "Lightning Address detected via NFC", nfcPaymentDetected = "Payment detected via NFC", nfcTapToOpen = "Tap to open", nfcTapToPay = "Tap to pay", // ── HomeTab ─────────────────────────────────────────────────────────────── loadingBalance = "Loading balance…", sats = "sats", hideBalance = "Hide balance", revealBalance = "Reveal balance", changeCurrency = "Change currency", showFiat = "+ Show fiat", updatedAt = { label -> "Updated $label" }, justNow = "just now", minAgo = {min -> "$min min ago"}, atTime = {time -> "at $time"}, viewHistory = "Activity", selectCurrency = "Select currency", currencyNone = "None", hideFiatEquivalent = "Hide fiat equivalent", selected = "Selected", search = "Search…", noCurrenciesAvailable = "No currencies available", noCurrenciesMatch = { query -> "No currencies match \"$query\"" }, couldNotRefresh = "Could not refresh — pull down to try again", couldNotLoadBalance = "Could not load balance — pull down to try again", // ── Shared ──────────────────────────────────────────────────────────────── cancel = "Cancel", tryAgain = "Try Again", amount = "Amount", next = "Next", back = "← Back", done = "Done", details = "Details", enterValidAmount = "Enter a valid amount", satsUnit = { sats -> "$sats sats" }, // ── ReceiveScreen — general ─────────────────────────────────────────────── receive = "Receive", // ── ReceiveScreen — error ───────────────────────────────────────────────── receiveError = "Error", // ── ReceiveScreen — QR / share ──────────────────────────────────────────── lightningAddressQrCode = "Lightning address QR code", lightningAddressLabel = "Lightning Address", shareLightningAddress = "Share Lightning Address", lightningInvoiceQrCode = "Lightning invoice QR code", invoiceLabel = "Invoice", shareInvoice = "Share Invoice", // ── ReceiveScreen — amount step ─────────────────────────────────────────── amountInSats = "Amount (sats)", satsRange = { min, max -> "$min – $max sats" }, // ── ReceiveScreen — memo step ───────────────────────────────────────────── memoOptional = "Memo (optional)", memoPlaceholder = "What's this for?", creatingInvoice = "Creating invoice…", createInvoice = "Create Invoice", // ── ReceiveScreen — invoice ready ───────────────────────────────────────── waiting = "Waiting…", invoiceExpired = "Invoice expired", newInvoice = "New Invoice", // ── ReceiveScreen — lnurl withdraw ──────────────────────────────────────── withdrawFrom = "Withdraw from", minimumSats = { min -> "Minimum is $min sats" }, maximumSats = { max -> "Maximum is $max sats" }, withdrawButton = "Withdraw", withdrawButtonAmount = { amount -> "Withdraw $amount sats" }, // ── ReceiveScreen — success ─────────────────────────────────────────────── paymentReceived = "Payment Received!", // ── AmountDisplay ───────────────────────────────────────────────────────── amountDisplaySats = { amount -> "$amount ${if (amount == 1L) "sat" else "sats"}" }, // ── BrightnessToggleButton & QrDisplayCard ──────────────────────────────── brightnessReduce = "Reduce brightness", brightnessBoost = "Boost brightness", qrShare = "Share", qrCopy = "Copy", qrNfcStop = "Stop NFC sharing", qrNfcStart = "Share via NFC", openInApp = "Open in app", noAppFound = "No compatible app found", // ── ReceiveViewModel ────────────────────────────────────────────────────── receiveVmFailedToCreateInvoice = "Failed to create invoice", receiveVmWithdrawRejected = "Withdraw service rejected the invoice", receiveVmWithdrawFailed = "Withdraw failed", // ── SendScreen — general ────────────────────────────────────────────────── send = "Send", paste = "Paste", continueButton = "Continue", clear = "Clear", sendAnother = "Send Another", // ── SendScreen — input field ────────────────────────────────────────────── sendInputLabel = "Invoice, LNURL, or Lightning Address", sendInputPlaceholder = "lnbc… / lnurl1… / user@domain.com", tapNfcHint = "Tap NFC device to receive invoice", // ── SendScreen — states ─────────────────────────────────────────────────── resolving = "Resolving…", sendingPayment = "Sending payment…", // ── SendScreen — paying ─────────────────────────────────────────────────── paymentTakingLong = "This is taking longer than usual", paymentTakingLongDetail = "Your payment is still on its way. This may be a hold invoice that settles when the recipient is ready. You'll get a notification when it completes — you can safely leave this screen.", dismissPayment = "Dismiss", // ── SendScreen — payment sent ───────────────────────────────────────────── paymentSent = "Payment sent!", amountSats = { sats -> "$sats sats" }, fiatEquivalent = { fiatStr -> "≈ $fiatStr" }, noFees = "No fees", routingFee = { sats, ppmSuffix -> "Routing fee: $sats sat${if (sats == 1L) "" else "s"}$ppmSuffix" }, // ── ConfirmCard ─────────────────────────────────────────────────────────── invoiceDetails = "Invoice Details", payingTo = { label -> "Paying to $label" }, confirmAmount = { sats -> "$sats sats" }, confirmAmountWithFiat = { sats, fiat -> "$sats sats · $fiat" }, memo = "Memo", destination = "Destination", created = "Created", expiresIn = "Expires in", hash = "Hash", invoice = "Invoice", expiryExpired = "Expired", expirySeconds = { s -> "${s}s" }, expiryMinutes = { m, s -> "${m}m ${s}s" }, expiryHours = { h, m -> "${h}h ${m}m" }, createdToday = { time -> "Today, $time" }, createdYesterday = { time -> "Yesterday, $time" }, payButton = { sats -> "Pay $sats sats" }, payButtonWithFiat = { sats, fiat -> "Pay $sats sats · $fiat" }, sendBiometricPrompt = { sats -> "Send $sats sats" }, sendBiometricPromptTo = { sats, label -> "Send $sats sats to $label" }, // ── LnurlPayForm ───────────────────────────────────────────────────────── lnurlAmountError = { min, max -> "Enter an amount between $min and $max sats" }, lnurlFiatRange = { minFiat, maxFiat -> "$minFiat – $maxFiat" }, lnurlSatsAndFiatRange = { min, max, minFiat, maxFiat -> "$min – $max sats · $minFiat – $maxFiat" }, commentOptional = { max -> "Comment (optional, max $max chars)" }, commentCounter = { current, max -> "$current/$max" }, lnurlPayButton = { sats -> "Pay $sats sats" }, lnurlPayButtonWithFiat = { sats, fiat -> "Pay $sats sats · $fiat" }, // ── RouteHintWarning ────────────────────────────────────────────────────── routeHintHighFees = "High routing fees in invoice", routeHintElevatedFees = "Elevated routing fees in invoice", routeHintForcedChannel = { node -> "This invoice forces payment through a private channel operated by $node." }, routeHintFeeRate = { effectivePpm, worstPpm -> "Effective fee rate: $effectivePpm ppm ($worstPpm ppm)" }, routeHintFeeRateBase = { effectivePpm, worstPpm, baseLabel -> "Effective fee rate: $effectivePpm ppm ($worstPpm ppm + $baseLabel base)" }, routeHintEstimatedFee = { sats -> "Estimated extra fee on this payment: ~$sats sat${if (sats == 1L) "" else "s"}" }, routeHintShowDetails = "See details ▾", routeHintHideDetails = "Hide details ▴", routeHintHopsHeader = "Private route hint hops", routeHintHopFees = { ppm, baseLabel -> "$ppm ppm · $baseLabel base" }, // ── SendViewModel ───────────────────────────────────────────────────────── sendVmLnurlAuthNotSupported = "Lightning Login (LNURL-auth) is not yet supported", sendVmUnrecognisedInput = "Unrecognised input — paste a BOLT-11 invoice, LNURL, or Lightning Address", sendVmPaymentFailed = "Payment failed", sendVmCouldNotFetchInvoice = "Could not fetch invoice from recipient", sendVmCouldNotDecodeInvoice = "Could not decode invoice", sendVmAuthFailed = { msg -> "Authentication failed: $msg" }, sendVmOnChainNotSupported = "On-chain Bitcoin payments are not supported — share a BIP-21 URI with a lightning= parameter", sendVmChannelRequestNotSupported = "Channel requests (lnurlc) are not supported", sendVmCouldNotResolveAddress = "Could not resolve address", sendVmEmptyResponse = "Empty response from server", sendVmUnsupportedType = { tag -> "Unsupported type: $tag" }, sendVmPaymentFailedRescan = "Payment failed — could not re-fetch address", // ── HistoryScreen ───────────────────────────────────────────────────────── historyTitle = "Activity", historyClose = "Close", historySearchPayments = "Search payments", historyFilterPayments = "Filter payments", historyRetry = "Retry", historyNoPayments = "No payments yet.", historySearchPlaceholder = "Search transactions", historySearchHelp = "Search help", historySearchPaste = "Paste", historySearchClear = "Clear search", historySearchChip = { tail -> "search: …$tail" }, historyClearSearch = "Clear search", filterDirectionOutgoing = "Outgoing", filterDirectionIncoming = "Incoming", filterClearDirection = "Clear direction filter", filterStatusCompleted = "Completed", filterStatusPending = "Pending", filterStatusFailed = "Failed", filterRemoveStatus = "Remove status filter", filterRemoveType = "Remove type filter", filterAmountRange = { min, max -> "$min–$max sats" }, filterAmountMin = { min -> "≥ $min sats" }, filterAmountMax = { max -> "≤ $max sats" }, filterClearAmount = "Clear amount filter", filterDateThisWeek = "This week", filterDateThisMonth = "This month", filterDateThisYear = "This year", filterDateRange = { from, to -> "$from–$to" }, filterDateFrom = { from -> "From $from" }, filterDateUntil = { until -> "Until $until" }, filterClearDate = "Clear date filter", // ── FilterBottomSheet ───────────────────────────────────────────────────── filterSheetTitle = "Filter payments", filterSectionDirection = "Direction", filterDirectionAll = "All", filterSectionStatus = "Status", filterSectionType = "Type", filterSectionAmount = "Amount (sats)", filterAmountMin_label = "Min", filterAmountMax_label = "Max", filterAmountSuffix = "sats", filterSectionDate = "Date", filterDateFrom_label = "From", filterDateTo_label = "To", filterDialogOk = "OK", filterDialogCancel = "Cancel", // ── SearchInfoSheet ─────────────────────────────────────────────────────── searchInfoTitle = "What can I search for?", searchInfoSubtitle = "Type any part of the following to find a payment:", searchInfoMemoTitle = "Memo", searchInfoMemoDesc = "The message or description attached to a payment. " + "For example, \"coffee\" or \"rent March\".", searchInfoInvoiceTitle = "Invoice", searchInfoInvoiceDesc = "The payment request you scanned or pasted to send a payment. " + "It usually starts with \"lnbc…\". " + "You can paste just the first or last few characters.", searchInfoHashTitle = "Hash", searchInfoHashDesc = "A unique code that identifies this payment on the " + "Lightning Network. Useful if someone asks you to " + "confirm a specific transaction.", searchInfoPreimageTitle = "Preimage", searchInfoPreimageDesc = "A secret code that proves a payment was received. " + "Only available after a payment completes successfully.", searchInfoNodeAliasTitle = "Node alias", searchInfoNodeAliasDesc = "The name of the Lightning node you sent a payment to. " + "For example, \"ACINQ\" or \"Wallet of Satoshi\". " + "Aliases are resolved automatically for outgoing payments.", searchInfoNodeIdTitle = "Node ID (pubkey)", searchInfoNodeIdDesc = "The public key of the destination node. " + "A 66-character hex string — you can paste just the first few characters.", searchInfoFooter = "You can paste a full value or search with just a few characters — " + "partial matches work too.", // ── PaymentDetailScreen ─────────────────────────────────────────────────── statusSuccess = "Success", // e.g. "Success" statusPending = "Pending", // e.g. "Pending" statusFailed = "Failed", // e.g. "Failed" statusUnknown = "Unknown", // e.g. "Unknown" detailOutgoingTitle = "Outgoing payment", detailIncomingTitle = "Incoming payment", detailBack = "Back", detailCouldNotLoad = "Could not load full details", detailFeeLabel = { feeSat, fiatPart, ppmPart -> "Fee: $feeSat sats$fiatPart$ppmPart" }, detailSectionDetails = "Details", detailRowDate = "Date", detailRowMemo = "Memo", detailRowMemoEmpty = "—", detailRowType = "Type", detailRowComment = "Comment", detailSectionSuccessAction = "Success Action", detailSuccessMessage = "Message", detailSuccessUrl = "URL", detailSuccessDescription = "Description", detailSectionTechnical = "Technical", detailRowPaymentHash = "Hash", detailRowPreimage = "Preimage", detailRowDestination = "Destination", detailCopyNodeId = "Copy node ID", detailRowBolt11 = "BOLT11", // ── PaymentRow ──────────────────────────────────────────────────────────── paymentRowSentCD = "Sent", paymentRowReceivedCD = "Received", paymentRowNoMemo = "No memo", paymentRowPending = "Pending", paymentRowFailed = "Failed", onboarding = OnboardingStrings( back = "Back", next = "Next", done = "Done", title = "Connect to LNbits", subtitle = "Enter your LNbits server URL and API keys.", serverUrl = "Server URL", serverUrlHint = "https://bitcointxoko.org", invoiceKey = "Invoice Key (read-only)", invoiceKeySubtitle = "Used to generate payment requests.", pasteInvoiceKey = "Paste invoice key", adminKey = "Admin Key (for sending)", adminKeySubtitle = "Required to send payments.", pasteAdminKey = "Paste admin key", hideAdminKey = "Hide", showAdminKey = "Show", fieldsRequired = "All fields are required.", connect = "Connect", notificationsTitle = "Stay in the loop", notificationsSubtitle = "Get notified instantly when you receive a payment.", notificationsAlreadyGranted = "You're all set - permissions have been granted.", allowNotifications = "Allow Notifications", notificationsNote = "You can change this later in system Settings.", notificationsAutoGranted = "Notifications are enabled automatically on your device.", batteryTitle = "Background activity", batterySubtitle = "Allow Gudari Wallet to run unrestricted so notifications arrive even when the app is closed.", openSettings = "Open Settings", batteryNote = "Tap 'Battery' → 'Unrestricted'. You can skip this and change it later.", batteryAlreadyUnrestricted = "You're all set — no restrictions detected.", paymentHistory = "Payment history", paymentHistorySubtitle = "Download your past payments so they're available offline.", syncNow = "Sync now", skipForNow = "Skip for now", syncScheduled = "Sync scheduled — will run when your device is online. You will get a notification when the sync is done. You can already start using the app.", continueToApp = "Continue to app →", connecting = "Connecting...", paymentsFetchedTotal = { fetched, total -> "$fetched / $total payments" }, paymentsSynced = { total -> "✓ $total payments synced"}, syncComplete = "✓ Sync complete", syncFailed = "Sync failed. You can retry from Settings.", scheduleForLater = "Schedule for later", scheduleSync = "Schedule sync", schedule = "Schedule", cancel = "Cancel" ), nwc = NwcStrings( back = "Back", next = "Next", done = "Done", cancel = "Cancel", schedule = "Schedule", // ── Connection detail ───────────────────────────────────────────────────── connectionDetailTitle = "Connection", connectionUnknownWallet = "Unknown app", connectionSectionDetails = "Details", connectionRowCreated = "Connected", connectionRowLastUsed = "Last used", connectionRowExpires = "Expires", connectionRowPubkey = "Public key", connectionNeverUsed = "Never", connectionNoExpiry = "Never", connectionExpired = { date -> "Expired · $date" }, connectionSectionPermissions = "Permissions", connectionSectionBudgets = "Spending budgets", connectionBudgetTitle = { window -> "$window budget" }, connectionBudgetUsed = { sats -> "Used: $sats sats" }, connectionBudgetTotal = { sats -> "of $sats sats" }, connectionRevoke = "Revoke connection", connectionStatusActive = "Active", connectionStatusExpired = "Expired", // ── NWC permissions ─────────────────────────────────────────────────────── permPayInvoice = "Pay invoices", permGetBalance = "Read balance", permGetInfo = "Read wallet info", permMakeInvoice = "Create invoices", permLookupInvoice = "Look up invoices", permListTransactions = "View transaction history", permSignMessage = "Sign messages", permPay = "Send payments", permInvoice = "Create invoices", permLookupHistory = "Lookup status & transaction history", permBalanceInfo = "Read balance & account info", permSendPayments = "Send payments", permCreateInvoices = "Create invoices", permLookupInvoiceStatus = "Lookup status of invoice", permReadTransactionHistory = "Read transaction history", permReadWalletBalance = "Read wallet balance", permReadAccountInfo = "Read account info", revokeDialogTitle = "Revoke connection?", revokeDialogBody = "This will permanently revoke this Nostr Wallet Connect key. Any app using it will lose access.", revokeDialogConfirm = "Revoke", revokeDialogDismiss = "Cancel", ) )