Phase 6: Translate User Pages - exchange, trades, invites, profile

- Expand exchange.json with all exchange page strings (page, steps, detailsStep, bookingStep, confirmationStep, priceDisplay)
- Create trades.json translation files for es, en, ca
- Create invites.json translation files for es, en, ca
- Create profile.json translation files for es, en, ca
- Translate exchange page and all components (ExchangeDetailsStep, BookingStep, ConfirmationStep, StepIndicator, PriceDisplay)
- Translate trades page (titles, sections, buttons, status labels)
- Translate invites page (titles, sections, status badges, copy button)
- Translate profile page (form labels, hints, placeholders, messages)
- Update IntlProvider to load all new namespaces
- All frontend tests passing
This commit is contained in:
counterweight 2025-12-25 22:19:13 +01:00
parent 7dd13292a0
commit 246553c402
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
22 changed files with 559 additions and 115 deletions

View file

@ -8,10 +8,70 @@
},
"direction": {
"buy": "BUY BTC",
"sell": "SELL BTC"
"sell": "SELL BTC",
"buyShort": "Buy BTC",
"sellShort": "Sell BTC"
},
"transferMethod": {
"onchain": "Onchain",
"lightning": "Lightning"
},
"page": {
"title": "Exchange Bitcoin",
"subtitle": "Buy or sell Bitcoin with a 5% premium",
"viewExistingTrade": "View your existing trade →"
},
"steps": {
"details": "Exchange Details",
"booking": "Book Appointment",
"confirm": "Confirm"
},
"detailsStep": {
"paymentMethod": "Payment Method",
"required": "*",
"lightningThreshold": "Lightning payments are only available for amounts up to €{max}",
"amount": "Amount (EUR)",
"summaryBuy": "You buy {sats}, you sell {eur}",
"summarySell": "You buy {eur}, you sell {sats}",
"continueToBooking": "Continue to Booking"
},
"bookingStep": {
"yourExchange": "Your Exchange",
"edit": "Edit",
"buy": "Buy",
"sell": "Sell",
"receiveVia": "Receive via",
"sendVia": "Send via",
"selectDate": "Select a Date",
"existingTradeWarning": "You already have a trade booked on this day. You can only book one trade per day.",
"viewExistingTrade": "View your existing trade →",
"availableSlots": "Available Slots for",
"loadingSlots": "Loading slots...",
"noSlots": "No available slots for this date"
},
"confirmationStep": {
"appointment": "Appointment",
"edit": "Edit",
"confirmTrade": "Confirm Trade",
"time": "Time:",
"direction": "Direction:",
"eur": "EUR:",
"btc": "BTC:",
"rate": "Rate:",
"payment": "Payment:",
"receiveVia": "Receive via",
"sendVia": "Send via",
"booking": "Booking...",
"priceStale": "Price Stale",
"confirmBuy": "Confirm Buy",
"confirmSell": "Confirm Sell",
"back": "Back"
},
"priceDisplay": {
"loading": "Loading price...",
"market": "Market:",
"ourPrice": "Our price:",
"updated": "Updated",
"stale": "(stale)"
}
}