aboutsummaryrefslogtreecommitdiffstats
path: root/src/i18n.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/i18n.js')
-rw-r--r--src/i18n.js56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/i18n.js b/src/i18n.js
index 2fe840d..babe3e0 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -224,6 +224,38 @@ const STR = {
giftExceedsBalance: 'That’s more than your balance.',
giftNeedsHeadroom: 'Gift up to {n}, or tap Max to gift your whole balance.',
giftAnother: 'Create another',
+ giftLockPlaceholder: 'Lock to npub (optional)',
+ giftLockHint: 'Optionally lock this gift to a nostr account: the link stays public, but only they get the claim code — sent to them as a nostr DM.',
+ giftLockTo: 'For',
+ giftLockInvalid: 'Not a valid npub or hex pubkey.',
+ giftLockedTo: 'For',
+ giftForYou: 'A gift for you',
+ claimGift: 'Claim',
+ dismiss: 'Dismiss',
+ giftCodeHint: 'Check your nostr direct messages for the claim code, then paste it below.',
+ claimCodePlaceholder: 'Paste claim code',
+ claimCodeWrong: 'That code didn’t work — check your nostr DM and try again.',
+ giftDmText: "🎁 You've received a Bitcoin gift of {amount}! Claim it here: {link}\n\nClaim code: {code}",
+ giftDmSent: 'Claim code sent to them via nostr DM.',
+ giftDmSending: 'Sending the claim code…',
+ giftDmFailed: 'Couldn’t send the nostr DM. Share this code with them privately:',
+ giftCopyCode: 'Copy claim code',
+ giftQrTooLong: 'Too large for a QR code — share the link below instead.',
+ giftConsolidateExplain: 'This gift would bundle {count} coins, making it costly for the recipient to claim. Splitting one coin first (~{fee}) gives them a clean single-input gift.',
+ giftConsolidateFirst: 'Split into one coin first',
+ giftUseManyCoins: 'Use {count} coins anyway',
+ consolidateTitle: 'Consolidate coins',
+ consolidateDesc: 'Your balance is spread across {n} coins. Merging them into one makes future sends and gifts cheaper and smaller.',
+ consolidateAction: 'Merge {n} coins into one',
+ consolidateDone: 'Consolidating — your coins are merging into one.',
+ consolidateFailed: 'Consolidation failed.',
+ claimWithExtension: 'Claim with nostr extension',
+ orEnterCode: 'or paste the claim code',
+ extWrongAccount: 'Your extension is signed in as a different nostr account than this gift is for.',
+ extNoNip44: 'Your nostr extension doesn’t support NIP-44 — paste the code instead.',
+ extDecryptFailed: 'Couldn’t decrypt with the extension — try the code.',
+ nostrKeyTitle: 'Nostr address',
+ nostrKeyDesc: 'Share this so others can lock a gift to you — the claim code is sent here as a nostr DM.',
giftSplitExplain: 'This gift would lock {lock} until it’s claimed ({change} of it comes back to you then). You can split a right-sized coin first for about {fee} so only the gift amount stays locked.',
giftSplitFirst: 'Split a coin first',
giftLockWhole: 'Lock the whole coin ({n})',
@@ -237,6 +269,9 @@ const STR = {
newWalletBody: 'Back up your recovery phrase to keep it safe.',
giftHistoryTitle: 'Gift link',
giftUnclaimedTag: 'unclaimed',
+ giftClaimedTag: 'claimed',
+ giftView: 'Gift link',
+ giftCodeLabel: 'Claim code (sent via DM)',
giftCancel: 'Cancel',
viewAllGifts: 'View all gifts ({n})',
prevPage: '‹ Prev',
@@ -253,6 +288,10 @@ const STR = {
giftRevoked: 'Gift revoked',
copyLink: 'Copy link',
claimBody: 'Claim it into a brand-new wallet that only you control.',
+ claimIntoPrompt: 'Choose where to receive it.',
+ claimNewWallet: 'Receive into a new wallet',
+ goToWallet: 'Go to wallet',
+ giftClaimedToast: 'Gift claimed',
claimBtn: 'Claim it',
claimFeeNote: '~{n} fee',
claimFailed: 'This gift has already been claimed or is no longer available.',
@@ -300,7 +339,24 @@ const STR = {
backendElectrumDesc: 'Data and instant payments over one Electrum WebSocket. Point it at your own server for a fully self-hosted wallet.',
electrumUrl: 'Electrum server (wss://)',
electrumUrlHint: 'A WebSocket Electrum server, e.g. wss://your-node:50004',
+ sourceUrl: 'Server URL',
+ sourceUrlHint: 'wss:// for an Electrum server, or an Esplora REST base (https://…/api). The type is detected from the URL.',
+ detectedElectrum: 'Electrum — data + instant payment notifications.',
+ detectedEsplora: 'Block explorer (Esplora) — data only; polls for payments.',
silentPaymentNote: 'Silent payment',
+ spReceiveTitle: 'Silent payment address',
+ spReceiveDesc: "A reusable address that can't be tracked.",
+ receiveAddressTab: 'Address',
+ receiveSpTab: 'Silent payment',
+ spScan: 'Scan for silent payments',
+ spScanning: 'Scanning…',
+ spWatching: 'Watching for payments',
+ spRescan: 'Rescan',
+ spReceived: 'Found {n} silent payment output(s): {amount}',
+ spIndexerTitle: 'Silent payment indexer',
+ spIndexerDesc: 'Where to scan for received silent payments. It only serves public tweak data — your scan key stays on-device — but a public one can see which blocks hold your outputs, so self-host for full privacy.',
+ spIndexerUrl: 'Indexer URL',
+ spIndexerHint: 'A BIP-352 tweak indexer (e.g. your own).',
deviceSync: 'Device sync',
deviceSyncDesc: 'Keep this wallet in sync across your devices by storing an encrypted copy on a Nostr relay — only a device with your seed can read it. Turn it off to keep everything on this device.',
syncAcross: 'Sync across devices',