{
  "a11y": {
    "bold": "Bold",
    "decrement": "Decrease",
    "embeddedVideo": "Embedded video",
    "findMyLocation": "Find my location",
    "home": "Home",
    "increment": "Increase",
    "italic": "Italic",
    "link": "Link",
    "maxPrice": "Maximum price",
    "minPrice": "Minimum price",
    "openPicker": "Open picker",
    "remove": "Remove",
    "underline": "Underline",
    "uploadPreview": "Uploaded file {index}",
    "zoomIn": "Zoom in",
    "zoomOut": "Zoom out"
  },
  "account": {
    "changeEmail": "Change email",
    "changePassword": "Change password",
    "emailChangeConfirmed": "Your email has been updated.",
    "emailChangeInvalid": "This confirmation link is invalid or has expired.",
    "emailChangeSent": "Confirm the change via the link sent to your new email.",
    "emailTaken": "That email is already in use.",
    "newEmail": "New email",
    "noEmail": "Not set",
    "passwordHint": "Send a reset link to your email",
    "passwordResetSent": "We sent a password reset link to your email.",
    "telegram": {
      "hint": "Get notifications and reply to guests from Telegram",
      "link": "Link Telegram",
      "linked": "Linked",
      "title": "Telegram"
    }
  },
  "activity": {
    "activityType": {
      "Culture": "Culture",
      "Education": "Education",
      "Entertainment": "Entertainment",
      "Food": "Food & Drink",
      "Nature": "Nature",
      "Sports": "Sports",
      "Wellness": "Wellness"
    },
    "create": "Create Activity",
    "cutoffHint": "A departure stops being bookable this many minutes before it starts.",
    "cutoffMinutes": "Booking cut-off, minutes",
    "duration": "Duration (minutes)",
    "label": "{count, plural, =1 {Activity} other {Activities}}",
    "perPerson": "per person",
    "person": "person",
    "schedule": {
      "addTime": "Add time",
      "booked": "{count, plural, =1 {# booked} other {# booked}}",
      "capacity": "Seats per departure",
      "created": "{count, plural, =0 {Nothing new — those departures already exist} =1 {# departure created} other {# departures created}}",
      "deleteBlocked": "This departure has bookings and cannot be deleted.",
      "disableInstead": "Disable it",
      "empty": "No departures this month yet.",
      "generate": "Create departures",
      "label": "Schedule",
      "rule": "Add departures",
      "seatsLeft": "{count, plural, =1 {# seat left} other {# seats left}}",
      "times": "Time",
      "weekdays": "Weekdays"
    },
    "validation": {
      "createError": "Failed to create activity. Please try again.",
      "updateError": "Failed to update activity. Please try again."
    }
  },
  "admin": {
    "createConfirm": "A test key is issued right away and shown only once — be ready to copy it.",
    "createConfirmTitle": "Create merchant “{name}”?",
    "createMerchant": "Create Merchant",
    "created": "Created",
    "merchantList": "Merchants",
    "merchantName": "Merchant Name",
    "regenerate": "Regenerate key",
    "regenerateConfirm": "The current key stops working immediately — every integration using it has to be updated. The new key is shown once.",
    "regenerateConfirmTitle": "Regenerate the {mode} key?",
    "walletLabel": "Label (optional)",
    "walletLabelPlaceholder": "My wallet"
  },
  "agent": {
    "bucket": {
      "earlier": "Earlier",
      "today": "Today",
      "week": "Last 7 days",
      "yesterday": "Yesterday"
    },
    "collection": {
      "count": "{count, plural, =1 {# match} other {# matches}}",
      "empty": "No matches — try refining your query",
      "error": "Could not load this set",
      "openAll": "Open all {count, plural, =1 {match} other {matches}}",
      "title": "Matches for: {query}",
      "titleNoQuery": "A curated set for you"
    },
    "command": {
      "ambiguous": "Several entries are called “{key}” — pick one: {options}",
      "arg": {
        "key": "key"
      },
      "compact": "Compress the conversation history",
      "compactUnavailable": "Nothing to compress in a new conversation yet",
      "escape": "Start a message with // to send text that begins with /",
      "forget": "Forget something the agent remembers",
      "forgetAll": "Forget everything",
      "forgetAllMessage": "The agent will forget everything it remembers about you. This cannot be undone.",
      "forgetAllTitle": "Forget everything?",
      "forgetButton": "Forget",
      "forgotten": "Forgot “{key}”",
      "forgottenAll": "Memory cleared",
      "help": "Show available commands",
      "helpTitle": "Commands",
      "limit": "Turn limit reached — try again later",
      "memory": "Show what the agent remembers",
      "memoryEmpty": "The agent does not remember anything yet",
      "memoryTitle": "What the agent remembers",
      "new": "Start a new conversation",
      "notFound": "Nothing remembered under “{key}”",
      "nothingToCompact": "Nothing to compress",
      "unknown": "No such command: /{name}"
    },
    "compaction": {
      "done": "History compressed",
      "running": "Compressing history…"
    },
    "deleteConfirm": "This conversation will be removed permanently.",
    "deleteThread": "Delete conversation",
    "error": {
      "generic": "Something went wrong",
      "threadGone": "This conversation no longer exists"
    },
    "hint": "Describe what you're looking for in plain language.",
    "inputPlaceholder": "Ask anything…",
    "newThread": "New thread",
    "quickSearch": "Quick Search",
    "searchThreads": "Search conversations",
    "summary": "Earlier in this conversation",
    "title": "Ask AI",
    "tool": {
      "createCheckoutLink": "Preparing checkout",
      "deleteUserPreference": "Forgetting a preference",
      "failed": "{name} — failed",
      "getActivity": "Looking up the activity",
      "getActivityOffers": "Checking departures",
      "getUnit": "Looking up the stay",
      "getUnitAvailability": "Checking availability",
      "getUnitOffers": "Checking rates",
      "getUserBookings": "Checking your bookings",
      "getUserMemory": "Recalling preferences",
      "saveUserPreference": "Saving preference"
    },
    "untitled": "Untitled"
  },
  "auth": {
    "errorThrottle": "Too many attempts. Please try again later.",
    "sessionExpired": "Your session has ended. Please sign in again."
  },
  "block": {
    "action": "Block",
    "blocked": "{name} blocked",
    "confirm": "They won't be able to message you, and you won't see each other among travel companions.",
    "title": "Block {name}?",
    "unblock": "Unblock",
    "unblocked": "{name} unblocked"
  },
  "booking": {
    "addChild": "Add child",
    "adults": "Adults",
    "all": "All",
    "approve": "Approve",
    "board": {
      "AllInclusive": "All inclusive",
      "BedAndBreakfast": "Breakfast included",
      "FullBoard": "Full board",
      "HalfBoard": "Half board",
      "RoomOnly": "Room only"
    },
    "book": "Book Now",
    "cancel": "Cancel Booking",
    "cancelConfirm": "Are you sure you want to cancel this booking?",
    "childUnderOne": "Under 1",
    "childYears": "{count, plural, one {# year} other {# years}}",
    "datesUnavailable": "Selected dates are not available",
    "deferred": {
      "addMethod": "Add a payment method",
      "blocked": {
        "dates": "Paying before check-in isn't available for these dates — check-in is too close. Pay now to book.",
        "host": "This host can't accept payment before check-in yet. Pay now to book."
      },
      "collecting": "Charging {amount}…",
      "failed": "The payment of {amount} didn't go through. Retry before {deadline}, or the booking will be cancelled.",
      "label": "Payment",
      "later": "Before check-in",
      "note": "The booking is confirmed right away. We charge your saved payment method before check-in.",
      "now": "Pay now",
      "pending": "Once the host approves, {amount} will be charged before check-in.",
      "reason": "Reason: {reason}",
      "retry": "Retry payment",
      "retrying": "The payment didn't go through. We'll try again on {date}; the deadline is {deadline}.",
      "scheduled": "Confirmed. {amount} will be charged on {date}.",
      "when": "When to pay"
    },
    "escrowNote": "You won't be charged yet — funds escrow on host approval.",
    "guest": {
      "checkingIn": "Checking in",
      "title": "Who's checking in"
    },
    "hostSince": "Host since {year}",
    "infants": "Infants",
    "minStay": "{count, plural, =1 {Minimum stay is # night} other {Minimum stay is # nights}}",
    "night": "{count, plural, =1 {night} other {nights}}",
    "notFound": "Booking not found",
    "openChat": "Open Chat",
    "options": {
      "board": "Meals",
      "cancellation": "Cancellation",
      "chooseDeparture": "Choose a departure",
      "chooseRoom": "Choose a room",
      "deferred": "No prepayment",
      "feesAtProperty": "+{amount} taxes and fees at the property",
      "feesBelow": "taxes and fees below",
      "nonRefundable": "Non-refundable",
      "otherBoard": "Other meal plan",
      "picked": "selected",
      "priceChanged": "Prices or conditions changed. Please choose again.",
      "rateCount": "{count, plural, =1 {# rate} other {# rates}}",
      "refundable": "Free cancellation",
      "slotGone": "That departure is no longer available. Please pick another.",
      "stayUnit": "/ {count, plural, =1 {night} other {# nights}}",
      "taxesIncluded": "Taxes included",
      "unavailable": "These dates just became unavailable. Try different dates.",
      "unavailableCell": "unavailable",
      "viewPhotos": "View photos"
    },
    "pay": {
      "bookAgain": "Book again",
      "bridging": "Payment is bridging to Solana — this can take a few minutes and resumes automatically.",
      "expired": "This payment window has closed. Anything already sent is being returned to your wallet.",
      "info": {
        "cctp": "USDC moves from your EVM wallet into the Solana escrow via Circle CCTP. Any refund is paid in USDC to your Solana wallet — not the EVM wallet you paid from.",
        "cctpLink": "How CCTP works",
        "solana": "Your payment is held in an on-chain escrow and released to the host after check-in. If the booking is cancelled, the full amount returns to the wallet you paid from."
      },
      "method": "Payment Method",
      "notReceived": "The payment didn't arrive in time. You can pay again — a new payment window opens.",
      "now": "Pay Now",
      "processing": "Payment accepted — confirming on-chain, this can take up to a minute.",
      "qrHint": "Scan to pay",
      "submitted": "Payment submitted",
      "window": "Payment is expected within a limited time.",
      "windowClosed": "The payment window is closing.",
      "windowLeft": "Time left to pay: {time}."
    },
    "payout": {
      "held": "In escrow · auto-payout to host after {date}",
      "label": "Payout",
      "paid": "Paid out {amount} → {address}",
      "processing": "Payout processing…",
      "refunded": "Refunded",
      "resolved": "Dispute resolved"
    },
    "pets": "Pets",
    "phase": {
      "approved": "Confirmed",
      "cancelled": "Cancelled",
      "completed": "Completed",
      "declined": "Declined",
      "deferred": "Pay before check-in",
      "dispute": "In dispute",
      "disputeFavorGuest": "Resolved for guest",
      "disputeFavorHost": "Resolved for host",
      "disputeResolving": "Dispute settling",
      "expired": "Expired",
      "paid": "In escrow",
      "pending": "Awaiting payment",
      "refunding": "Refund processing",
      "requested": "Requested"
    },
    "refund": "Refund",
    "refundConfirm": "Confirm refund",
    "refundPreview": "You'll get back {amount} {currency}",
    "refundProcessing": "Refund accepted — settling on-chain, this can take up to a minute.",
    "refundRequest": "Request refund",
    "request": "Booking request",
    "search": "Search by booking or unit ID…",
    "settled": "Paid in escrow",
    "statusApproved": "Approved",
    "statusPending": "Pending",
    "stays": "Stays",
    "supply": {
      "approved": "Confirmed with the hotel",
      "cancelDisputeOpen": "Cancellation isn't available while a dispute is open.",
      "cancelledBySupplier": "We couldn't confirm this stay with the hotel.",
      "confirming": "Confirming your stay with the hotel…",
      "note": "Pay by card. The hotel confirms your stay after payment.",
      "payTitle": "Complete payment",
      "reference": "Reference: {reference}",
      "refundNote": "Any refund follows the hotel's cancellation policy.",
      "sessionInvalid": "This payment session is no longer valid. Cancel this booking and book again."
    },
    "toSettle": "To pay in escrow",
    "tripDetails": "Trip Details"
  },
  "cancellation": {
    "addTier": "Add tier",
    "beforeDate": "Before {date}",
    "beforeHours": "{count, plural, one {# hour before check-in} other {# hours before check-in}}",
    "error": {
      "increasing": "Refund can’t increase as check-in approaches.",
      "range": "Refund must be between 0 and 100%.",
      "zeroTier": "Add exactly one tier at 0 hours (the final refund)."
    },
    "label": "Cancellation policy",
    "leadHours": "Hours before check-in",
    "preset": {
      "flexible": "Flexible",
      "moderate": "Moderate",
      "strict": "Strict"
    },
    "refund": "{percent, number, ::percent .##} refund",
    "refundPercent": "Refund %",
    "tier": "Tier {index}"
  },
  "chat": {
    "accept": "Accept",
    "bookingTitle": "Booking #{id}",
    "copy": "Copy",
    "deleteChat": "Delete chat",
    "edited": "(edited)",
    "emptyMessage": "Message cannot be empty",
    "filterAll": "All",
    "forward": "Forward",
    "forwardTitle": "Forward to…",
    "forwarded": "Forwarded",
    "forwardedFrom": "Forwarded from {username}",
    "group": {
      "addMembers": "Add members",
      "created": "Group created",
      "demoteAdmin": "Demote to member",
      "infoTitle": "Group info",
      "makeAdmin": "Make admin",
      "memberAdded": "Member added",
      "memberRemoved": "Member removed",
      "name": "Group name",
      "online": "{count} online",
      "permissions": {
        "changeInfo": "Change group info",
        "changeInfoHint": "Edit group name and avatar.",
        "deleteMessages": "Delete messages",
        "deleteMessagesHint": "Delete any message in the chat.",
        "inviteUsers": "Invite users",
        "inviteUsersHint": "Add new members to the group.",
        "manageAdmins": "Manage admins",
        "manageAdminsHint": "Promote or demote other members.",
        "pinMessages": "Pin messages",
        "pinMessagesHint": "Pin and unpin messages in the chat.",
        "removeUsers": "Remove users",
        "removeUsersHint": "Remove members from the group.",
        "saved": "Permissions updated",
        "title": "Permissions"
      },
      "removeMember": "Remove",
      "removeMemberConfirm": "Remove {username}?",
      "removeMemberHint": "They will lose access to the chat history.",
      "roleAdmin": "Admin",
      "roleOwner": "Owner",
      "updated": "Group updated",
      "uploadAvatar": "Upload avatar"
    },
    "hiddenMessage": "Message from a blocked user",
    "invitePending": "{username} invited you to chat",
    "lastSeen": {
      "long": "offline for a while",
      "recent": "recently online",
      "today": "Last seen at {time}",
      "yesterday": "Last seen yesterday at {time}"
    },
    "members": "{count, plural, one {# member} other {# members}}",
    "messageDeleted": "Message deleted",
    "messagePlaceholder": "Type a message…",
    "new": {
      "ai": "New AI chat",
      "aiDesc": "Plan a trip with Pinns AI",
      "group": "New group",
      "groupDesc": "Pick up to 50 people",
      "invite": "Invite to Pinns",
      "inviteCopied": "Invite link copied",
      "inviteDesc": "Share a link — works on any device",
      "message": "New message",
      "messageDesc": "Search by username or @handle",
      "search": "Search by name or @handle…",
      "title": "Start a conversation",
      "users": "Users"
    },
    "newChat": "New chat",
    "noChatSelected": "Select a chat to start messaging",
    "noChats": "No chats",
    "online": "Online",
    "readOnly": "Your account is restricted: you can read this chat but can't post.",
    "reply": "Reply",
    "replyingTo": "Replying to {username}",
    "requestPending": "{username} wants to message you. Accept to reply.",
    "searchChats": "Search chats…",
    "sectionBookings": "Bookings",
    "sectionDirect": "Direct",
    "sectionGroups": "Groups",
    "sectionTrips": "Trips",
    "showMessage": "Show",
    "sortName": "By name",
    "sortRecent": "Most recent",
    "sortUnread": "Unread first",
    "system": {
      "DisputeOpened": "Dispute opened",
      "DisputeResolvedFavorGuest": "Dispute resolved in favor of the guest",
      "DisputeResolvedFavorHost": "Dispute resolved in favor of the host",
      "MeetupCancelled": "The host cancelled the meetup",
      "SupportJoined": "Support joined the chat"
    },
    "typing": "{user} is typing…",
    "typingMultiple": "{count, plural, one {# person is typing…} other {# people are typing…}}",
    "viewListing": "View listing",
    "viewMeetup": "View meetup",
    "viewTrip": "View trip",
    "voice": {
      "denied": "Allow microphone access in your browser to record voice messages",
      "hint": "Hold to record a voice message",
      "recording": "Recording a voice message",
      "unavailable": "Microphone is not available"
    }
  },
  "comment": {
    "empty": "No comments yet",
    "hideReplies": "Hide replies",
    "placeholder": "Add a comment…",
    "reply": "Reply",
    "replyPlaceholder": "Write a reply…",
    "viewReplies": "View replies ({count})"
  },
  "common": {
    "activities": "Activities",
    "activityType": "Activity Type",
    "add": "Add",
    "address": "Address",
    "anyTime": "any time",
    "area": "Area",
    "attach": "Attach media",
    "back": "Back",
    "balance": "Balance",
    "booking": "Booking",
    "bookings": "Bookings",
    "cancel": "Cancel",
    "chats": "Chats",
    "checkEmail": "Check your email",
    "checkIn": "Check-in",
    "checkOut": "Check-out",
    "close": "Close",
    "collapse": "Collapse",
    "completed": "Completed",
    "confirm": "Confirm",
    "contentLanguage": "Written in {language}",
    "copied": "Copied",
    "copy": "Copy",
    "country": "Country",
    "create": "Create",
    "currency": "Currency",
    "decline": "Decline",
    "defaultPlace": "Bangkok",
    "delete": "Delete",
    "deleteConfirm": "Are you sure you want to delete this?",
    "details": "Details",
    "disputes": "Disputes",
    "edit": "Edit",
    "email": "Email",
    "error": "Something went wrong. Please try again.",
    "favorites": "Favorites",
    "firstName": "First name",
    "firstNamePlaceholder": "Jane",
    "guestsCount": "{count, plural, one {1 guest} other {# guests}}",
    "hourShort": "h",
    "howItWorks": "How it works",
    "language": "Language",
    "lastName": "Last name",
    "lastNamePlaceholder": "Doe",
    "login": "Login",
    "mapArea": "Map area",
    "minuteShort": "m",
    "next": "Next",
    "ok": "OK",
    "openDetail": "Open details",
    "optional": "Optional",
    "or": "or",
    "password": "Password",
    "pause": "Pause",
    "payments": "Payments",
    "peopleCount": "{count, plural, one {1 person} other {# people}}",
    "phone": "Phone",
    "play": "Play",
    "previous": "Previous",
    "price": "Price",
    "profile": "Profile",
    "reason": "Reason",
    "restricted": "Your account is restricted",
    "retry": "Retry",
    "save": "Save",
    "search": "Search",
    "send": "Send",
    "settings": "Settings",
    "showAll": "{count, plural, other {Show all #}}",
    "showOnMap": "Show on map",
    "showOriginal": "Show original",
    "showTranslation": "Show translation",
    "signup": "Sign Up",
    "statistics": "Statistics",
    "status": "Status",
    "theme": {
      "dark": "Dark",
      "light": "Light"
    },
    "thisArea": "this area",
    "today": "Today",
    "total": "Total",
    "translatedFrom": "Translated from {language}",
    "username": "Username",
    "wallet": "Wallet",
    "yesterday": "Yesterday"
  },
  "confirmEmail": {
    "backToSettings": "Back to settings",
    "errorText": "This link is invalid or has expired.",
    "errorTitle": "Confirmation failed",
    "successText": "Your email address has been changed.",
    "successTitle": "Email updated",
    "title": "Email change",
    "verifying": "Confirming your new email…"
  },
  "consent": {
    "accept": "Accept",
    "text": "We use cookies to see how Pinns is used and make it better.",
    "title": "Cookies"
  },
  "create": {
    "activity": {
      "desc": "Tour, class, tasting, experience — booked per person or per group.",
      "title": "An activity"
    },
    "heading": "What do you want to list?",
    "start": "Start",
    "step1": {
      "desc": "Photos, price, rules. Goes live right away — free.",
      "title": "Describe & publish"
    },
    "step2": {
      "desc": "Guests book and pay into escrow. Chat to arrange details.",
      "title": "Get bookings"
    },
    "step3": {
      "desc": "KYC + tax info before your first payout (required by law).",
      "title": "Verify to get paid"
    },
    "subtitle": "Publishing is free and takes a few minutes. You can verify your identity and add payout details later — they're only needed before you get paid.",
    "unit": {
      "desc": "Apartment, cottage, room, B&B — anything guests can book by night.",
      "title": "A place to stay"
    }
  },
  "dateRange": {
    "selectDates": "Select dates"
  },
  "destination": {
    "activities": "{count, plural, =1 {# activity} other {# activities}}",
    "allActivities": "All activities in {city}",
    "allCountries": "All countries",
    "allStays": "All stays in {city}",
    "areas": "Areas of {city}",
    "empty": "No destinations yet",
    "faq": {
      "area": "{name} ({count, plural, =1 {# place} other {# places}}, about {price} a night)",
      "monthAnswer": "The cheapest month is {cheapest}, about {cheapestPrice} a night; the most expensive is {dearest}, about {dearestPrice}.",
      "monthQuestion": "When is {city} cheapest?",
      "newAnswer": "Yes: {count, plural, =1 {# place was} other {# places were}} added in the last 30 days.",
      "newQuestion": "Are there new places to stay in {city}?",
      "priceAnswer": "The median price is {price} a night.",
      "priceQuestion": "How much does a stay in {city} cost?",
      "priceType": "The most affordable option is {type}, about {price} a night.",
      "title": "{city}: frequently asked questions",
      "type": "{type} ({count, plural, =1 {# place} other {# places}})",
      "typesAnswer": "You can book {types}.",
      "typesQuestion": "What kinds of places can you book in {city}?",
      "whereAnswer": "Most places to stay are in {areas}.",
      "whereQuestion": "Where to stay in {city}?"
    },
    "heading": "Where to stay in {city}",
    "intro": "Cities where hosts are taking bookings right now.",
    "monthly": "about {price} a month",
    "months": "Prices in {city} by month",
    "nearby": "Nearby cities",
    "newCount": "{count, plural, =1 {# new place} other {# new places}} in 30 days",
    "nightly": "about {price} a night",
    "popular": "Popular destinations",
    "reviews": "{count, plural, =1 {# review} other {# reviews}}",
    "search": "Search cities",
    "showAll": "Show all {count, plural, =1 {# city} other {# cities}}",
    "stays": "{count, plural, =1 {# stay} other {# stays}}",
    "title": "Destinations",
    "topActivities": "Things to do",
    "travelers": "{count, plural, =1 {# traveler is} other {# travelers are}} here in the next 30 days.",
    "types": "Types of stays in {city}"
  },
  "dispute": {
    "all": "All",
    "date": "Date",
    "favorGuest": "Favor Guest",
    "favorGuestResult": "Resolved in your favor",
    "favorHost": "Favor Host",
    "favorHostResult": "Resolved in favor of host",
    "filterOpen": "Open",
    "filterResolved": "Resolved",
    "goToDispute": "Go to Dispute",
    "noResolution": "No resolution provided",
    "notFound": "Dispute not found",
    "open": "Open Dispute",
    "outcome": "Outcome",
    "reasonPlaceholder": "Describe the issue…",
    "resolution": "Resolution",
    "resolutionPlaceholder": "Describe the resolution…",
    "resolve": "Resolve",
    "resolveConfirm": "Are you sure you want to resolve this dispute?",
    "resolving": "Verdict accepted — the arbiter is settling it on-chain.",
    "statusOpen": "Open",
    "statusResolved": "Resolved",
    "windowClosed": "Dispute window expired",
    "windowNotStarted": "Dispute window opens after check-in",
    "windowRemaining": "{hours}h {minutes}m left to open a dispute"
  },
  "empty": {
    "activities": "No activities yet",
    "bookings": "No bookings yet",
    "chats": "No chats yet",
    "conversations": "No conversations yet",
    "devices": "No other devices",
    "disputes": "No disputes yet",
    "favorites": "No favorites yet",
    "likes": "No liked posts yet",
    "listings": "No listings yet",
    "merchants": "No merchants yet",
    "messages": "No messages yet",
    "options": "Nothing found",
    "posts": "No posts yet",
    "reviews": "No reviews yet",
    "units": "No places yet",
    "users": "No users found",
    "wallets": "No wallets configured"
  },
  "error": {
    "loginFailed": "Login failed",
    "signupFailed": "Signup failed"
  },
  "escrow": {
    "disputeTextA": "An arbiter decides who's right.",
    "disputeTextB": "Our fee stays as booked.",
    "disputeTitle": "Dispute",
    "lead": "Hosts are verified, agreements stay in your chat, and cancellation terms are clear before you book. If something goes wrong, an arbiter settles the dispute, and crypto payments wait in escrow until check-in.",
    "refundTextA": "The money goes back to your wallet —",
    "refundTextB": "in full or in part, per the cancellation terms.",
    "refundTitle": "Cancellation",
    "releaseTextA": "After check-in, minus our fee.",
    "releaseTextB": "Anyone can trigger it — we can't hold it back.",
    "releaseTitle": "Payout to the host",
    "title": "Your payment is safe."
  },
  "favorites": {
    "savedPlaces": "{count, plural, one {# saved place} other {# saved places}}"
  },
  "feed": {
    "empty": "Your feed is empty. Follow people to see their posts.",
    "scope": {
      "following": "Following",
      "nearby": "Nearby",
      "trending": "Trending"
    },
    "title": "Feed"
  },
  "filter": {
    "active": "Active",
    "apply": "Apply",
    "availability": "Availability",
    "clear": "Clear",
    "duration": "Duration",
    "durationMax": "Max minutes",
    "durationMin": "Min minutes",
    "options": "Options",
    "priceRange": "Price Range",
    "rating": "Rating",
    "sortBest": "Best",
    "stars": "Hotel stars",
    "title": "Filters"
  },
  "footer": {
    "allRights": "All rights reserved.",
    "contactLine": "Got questions? Drop us a line at <a>{email}</a>",
    "cookies": "Cookies",
    "privacy": "Privacy policy",
    "terms": "Terms of use"
  },
  "forgot": {
    "backToLogin": "Back to login",
    "sentText": "If {email} is registered, a reset link is on its way.",
    "submit": "Send reset link",
    "subtitle": "Enter your email and we'll send you a reset link.",
    "title": "Reset password"
  },
  "gallery": {
    "showAll": "Show all photos",
    "thumbnails": "Photos"
  },
  "home": {
    "agentSearch": {
      "area": "Chaloklum",
      "chart": "Nightly prices",
      "cheapest": "cheapest",
      "city": "Koh Phangan",
      "label": "What are you looking for",
      "place": "Quiet cabin",
      "prompts": {
        "calm": "Quiet, by the sea, two weeks in December",
        "pets": "A cabin by the water, dogs welcome",
        "work": "Affordable and calm, good for working"
      },
      "text": "We'll find the place and show which night it's cheapest.",
      "title": "Just say what you're looking for"
    },
    "communityCta": "Open feed",
    "communityEyebrow": "Community",
    "communityText": "Real moments from hosts and travellers — bakery finds, sunrise hikes, last-minute openings.",
    "communityTitle": "From travellers you follow",
    "communityTitleTrending": "Trending in the community",
    "destinationsAll": "All destinations",
    "destinationsTitle": "Popular destinations",
    "explore": "Explore",
    "friends": {
      "chatLine": "who's up for sunset?",
      "city": "Koh Phangan",
      "lead": "Add your city and dates — see who'll be there too.",
      "meetups": {
        "dinner": "Dinner at the night market",
        "sunrise": "Sunrise on the beach"
      },
      "steps": {
        "chat": "Chat",
        "companions": "Companions",
        "meetup": "Meetup",
        "trip": "Trip"
      },
      "tags": {
        "coffee": "coffee",
        "dinner": "dinner",
        "sameDates": "same dates",
        "surfing": "surfing"
      },
      "title": "Friends in every city"
    },
    "heroSubtitle": "The whole trip in one place: find it on the map, sort it out in chat, share how it went with friends",
    "heroTitle": "Trips that actually feel <hl>local</hl>",
    "linkBook": "Book",
    "trending": "Trending"
  },
  "host": {
    "booking": {
      "answerBy": "reply by {date} or the request is declined",
      "chat": "Chat with guest",
      "declineConfirm": "Decline this booking request? This cannot be undone."
    },
    "calendar": {
      "pick": "Pick a listing"
    },
    "dispute": {
      "answerArbitration": "Reply to arbitration"
    },
    "kpi": {
      "awaiting": "Awaiting reply",
      "bookings": "Bookings",
      "disputes": "Open disputes",
      "products": "Listings",
      "reviewable": "Awaiting your review"
    },
    "kyc": {
      "ready": "Verified — you can publish listings"
    },
    "moderation": {
      "approve": "Approve",
      "declineReason": "Decline reason",
      "empty": "Nothing awaits moderation"
    },
    "nav": {
      "account": "Account",
      "main": "Main",
      "money": "Money",
      "products": "Listings"
    },
    "product": {
      "blocked": {
        "kyc": "Verify your identity to publish listings",
        "payout": "Add a Solana payout address to publish listings"
      },
      "createAndPublish": "Create and publish",
      "declinedReason": "Reason: {reason}",
      "deleteBlocked": "This listing has live bookings — unlist it instead",
      "deleteConfirm": "Delete this listing for good?",
      "earned": "Earned",
      "empty": "No listings yet",
      "notFound": "Listing not found",
      "publish": "Publish",
      "tab": {
        "bookings": "Bookings",
        "calendar": "Calendar",
        "reviews": "Reviews",
        "stats": "Statistics"
      },
      "unlist": "Unlist"
    },
    "queue": {
      "answer": "Reply",
      "bookingTitle": "Booking request #{id}",
      "count": "{count, plural, one {# task} other {# tasks}}",
      "disputeMeta": "Booking #{id}",
      "disputeTitle": "Dispute #{id}",
      "empty": "Nothing to do — every booking and review is handled",
      "fix": "Fix",
      "review": "Write a review",
      "reviewMeta": "Checked out {date}",
      "title": "Needs your action"
    },
    "review": {
      "empty": "Nothing to review right now",
      "outgoing": "Visible only to you — publishes in {count, plural, one {# day} other {# days}}",
      "stay": "Stay #{id}"
    },
    "schedule": {
      "pick": "Pick an activity"
    },
    "section": {
      "balance": "Balance and payouts",
      "bookings": "Bookings",
      "calendar": "Calendar and rates",
      "disputes": "Disputes",
      "kyc": "Verification and payouts",
      "moderation": "Moderation",
      "overview": "Overview",
      "products": "All listings",
      "reviews": "Reviews",
      "schedule": "Activity schedule",
      "stats": "Statistics"
    },
    "title": "Hosting"
  },
  "invoice": {
    "completed": "Payment completed successfully!",
    "expired": "Invoice has expired",
    "failed": "Payment failed",
    "payWithWallet": "Pay with Wallet",
    "processing": "Processing payment…",
    "refund": "Refund required",
    "statusTitle": "Invoice Status",
    "title": "Invoice",
    "transactionFailed": "Transaction failed",
    "transactionNotConfirmed": "Transaction not confirmed",
    "waitingForPayment": "Waiting for payment…"
  },
  "kyc": {
    "Pending": "Pending",
    "Rejected": "Rejected",
    "Unverified": "Not verified",
    "Verified": "Verified",
    "approve": "Approve",
    "approveToast": "Verification approved",
    "dateOfBirth": "Date of birth",
    "decision": "Decision",
    "docType": {
      "DriverLicense": "Driver's license",
      "IdCard": "ID card",
      "Passport": "Passport"
    },
    "document": "Document {n}",
    "documentType": "Document type",
    "documents": "Documents",
    "goVerify": "Go to verification",
    "label": "Verification",
    "legalName": "Legal name",
    "noAccess": "Verification unavailable",
    "pendingNote": "Complete the form to start verification. Supported: images and PDF.",
    "reject": "Reject",
    "rejectReason": "Rejection reason",
    "rejectReasonPlaceholder": "Reason shown to the applicant",
    "rejectToast": "Verification rejected",
    "rejectedNote": "Your submission was rejected.",
    "resubmit": "Resubmit",
    "reviewedAt": "Reviewed",
    "submit": "Submit for review",
    "submitToast": "Submitted for review",
    "title": "Identity verification",
    "underReview": "Your documents are under review.",
    "validation": {
      "required": "Fill in all fields and upload your documents"
    },
    "verifiedNote": "Your identity is verified."
  },
  "ledger": {
    "empty": "No transactions yet",
    "history": "Transaction history",
    "status": {
      "Encumbered": "On hold",
      "Pending": "Pending",
      "Settled": "Settled",
      "Voided": "Voided"
    },
    "txType": {
      "Adjustment": "Adjustment",
      "Bonus": "Bonus",
      "DirectPay": "Payment",
      "DisputeResolve": "Dispute resolution",
      "EscrowDeposit": "Escrow deposit",
      "EscrowRefund": "Refund",
      "EscrowRelease": "Payout",
      "EscrowResolve": "Dispute resolution",
      "Refund": "Refund",
      "SupplyEarned": "Supply earnings",
      "SupplyReversed": "Supply reversal",
      "Withdrawal": "Withdrawal"
    }
  },
  "legal": {
    "cookies": "Cookie Policy",
    "imprint": "Legal Notice",
    "privacy": "Privacy Policy",
    "terms": "Terms of Service",
    "updated": "Last updated {date}"
  },
  "listing": {
    "basicsLabel": "Basics",
    "completeness": "Completeness",
    "descriptionLabel": "Description",
    "inCity": "Listing — {city}",
    "livePreview": "Live preview",
    "location": "Location",
    "maxGuests": "{count, plural, =1 {# Guest} other {# Guests}}",
    "maxGuestsLabel": "Max guests",
    "media": "Photos & Videos",
    "options": {
      "add": "Add option",
      "hint": "An option is a variant of the same activity — group or private, with or without transfer — each with its own price and photos. Leave this empty to sell at a single price.",
      "item": "Option {index}",
      "label": "Options",
      "priceLocked": "Price is calculated from your options.",
      "remove": "Remove option",
      "title": "Option name"
    },
    "placeCount": "{count, plural, =1 {place} other {places}}",
    "requiredFields": "Please fill in all required fields",
    "tags": "Tags",
    "tagsPlaceholder": "Search tags…",
    "title": "Title"
  },
  "location": {
    "noDestination": "None of our destinations is near this point. Pick a spot closer to a city in our catalog.",
    "outOfService": "This point is outside our service area. Pick a spot on land within a country.",
    "searchPlaceholder": "Search address…"
  },
  "login": {
    "continueWith": "Continue with {provider}",
    "forgotPassword": "Forgot password?",
    "heading": "Welcome back",
    "noAccount": "Don't have an account?",
    "orContinueWith": "or continue with",
    "passwordInput": "Enter password",
    "signupLink": "Sign up here",
    "subtitle": "Sign in to continue your trip",
    "title": "Login",
    "usernameInput": "Enter username",
    "welcome": "Welcome back, {name}"
  },
  "logout": {
    "allDevices": "Sign out on all devices",
    "message": "Are you sure you want to sign out?",
    "title": "Sign Out"
  },
  "map": {
    "gestures": {
      "mac": "Use ⌘ + scroll to zoom the map",
      "mobile": "Use two fingers to move the map",
      "windows": "Use Ctrl + scroll to zoom the map"
    },
    "unavailable": "The map is unavailable right now. Try again later.",
    "unsupported": "Your browser can’t display the map."
  },
  "media": {
    "aspect": "Aspect",
    "zoom": "Zoom"
  },
  "meetup": {
    "cancel": "Cancel meetup",
    "cancelConfirm": "Everyone who's going will be notified. This can't be undone.",
    "cancelled": "Meetup cancelled",
    "capacity": "Seats ({min}–{max}, you included)",
    "chat": "Meetup chat",
    "create": "Create meetup",
    "created": "Meetup created",
    "date": "Date",
    "description": "Description",
    "descriptionPlaceholder": "What's the plan, what to bring, how to find you",
    "edit": "Edit meetup",
    "empty": "No upcoming meetups in {city} yet",
    "emptyHint": "Suggest a dinner, a walk or surfing — everyone here that day will see it.",
    "error": {
      "capacity": "Seats can't be fewer than people already going ({count})",
      "noTrip": "Add a trip covering this date to host a meetup",
      "past": "Pick a time in the future",
      "product": "Choose a stay or tour in this city",
      "tooFar": "Meetups can be planned up to a year ahead",
      "unavailable": "This meetup is no longer available"
    },
    "full": "Full",
    "going": "Going",
    "host": "Host",
    "hostedBy": "Hosted by {name}",
    "join": "Join for free",
    "joined": "You're going",
    "label": "Meetup",
    "leave": "Not going",
    "members": "Who's going",
    "new": "New meetup",
    "notFound": "Meetup not found",
    "note": {
      "cancelled": "The host cancelled this meetup.",
      "full": "All seats are taken. One may free up if someone leaves.",
      "going": "You're on the list. Updates and details are in the meetup chat.",
      "host": "You're the host. Everyone who's going is in the meetup chat.",
      "join": "Joining is free. Details and updates are in the meetup chat.",
      "started": "This meetup has already started."
    },
    "place": "Place",
    "placePlaceholder": "Café, bar or meeting point",
    "product": "Go together",
    "productPlaceholder": "Search a stay or tour",
    "seats": "{taken} of {total} seats",
    "seatsLabel": "Seats taken",
    "state": {
      "cancelled": "This meetup was cancelled",
      "cancelledShort": "Cancelled",
      "noTrip": "Add a trip covering this day to join",
      "restricted": "Your account is restricted, so you can't join meetups"
    },
    "time": "Time",
    "title": "Title",
    "titlePlaceholder": "Sunset at the pier",
    "updated": "Meetup updated",
    "youHost": "You're hosting"
  },
  "merchant": {
    "address": {
      "add": "Add address",
      "addressPlaceholder": "Solana wallet address",
      "cooldown": "Available {date}",
      "cooldownInfo": "A new address can be used for withdrawals 24 hours after it's added.",
      "empty": "No addresses yet",
      "ready": "Ready",
      "remove": "Remove address",
      "removeConfirm": "Remove this withdrawal address?",
      "title": "Withdrawal addresses"
    },
    "balance": {
      "available": "Available",
      "empty": "No funds yet — sales revenue will appear here."
    },
    "closeConfirm": "Close this merchant? It stays active until the balance is withdrawn and all escrows are settled.",
    "closeConfirmTitle": "Close merchant",
    "fee": {
      "label": "Fee",
      "max": "Between 0 and {max}% — the contract rejects anything higher",
      "note": "Applies to new bookings only — deals already open keep the rate they were created with.",
      "saved": "Fee saved — it applies to new bookings"
    },
    "keyModal": {
      "copy": "Copy key",
      "title": "Secret key for {name}",
      "warning": "Copy it now — it's shown only once and can't be recovered."
    },
    "live": {
      "activate": "Activate live",
      "activated": "Live is active. Its wallet is empty — fund it before running real payments.",
      "completed": "Live was already open — the missing custody wallet has been rebuilt. Your existing live key still works.",
      "confirm": "Activating live opens the real-money books for this merchant and issues its live key — shown once. The live custody wallet is created empty and has to be funded before it can settle anything.",
      "confirmTitle": "Activate live mode",
      "info": "Live runs alongside test — its own key, wallet and balances."
    },
    "mode": {
      "Live": "Live",
      "LiveHint": "Real money",
      "Test": "Test",
      "TestHint": "Test data"
    },
    "provision": {
      "action": "Re-apply settings",
      "confirm": "The backend compares its view of the merchant with what is written on chain and fixes the difference. Running it again is safe: if the two already agree, nothing happens.",
      "confirmTitle": "Re-apply the {mode} settings?",
      "requested": "Re-apply requested"
    },
    "provisioning": "Setting up the custody wallet and on-chain config — this usually takes a few seconds.",
    "provisioningFailed": "Setup is taking longer than usual. Press “Re-apply settings” to finish the bootstrap.",
    "status": {
      "Active": "Active",
      "Pending": "Provisioning…",
      "Terminated": "Closed",
      "Terminating": "Closing…"
    },
    "terminating": "Closing this merchant — withdrawing the balance and settling open escrows.",
    "withdraw": "Withdraw",
    "withdrawal": {
      "amount": "Amount",
      "approve": "Approve",
      "count": "{count} records",
      "date": "Date",
      "empty": "No withdrawals yet",
      "handled": "This request has already been handled.",
      "history": "Withdrawal history",
      "net": "Receiver gets {amount}",
      "noAddresses": "Add a withdrawal address and wait out the 24-hour cooldown before you can withdraw.",
      "receiver": "Receiver address",
      "receiverSelect": "Select destination address",
      "reject": "Reject",
      "status": {
        "Approved": "Approved",
        "Completed": "Completed",
        "Failed": "Failed",
        "Manual": "Manual",
        "Pending": "Pending",
        "Rejected": "Rejected",
        "Sending": "Sending",
        "Submitted": "Submitted"
      },
      "title": "Withdraw {currency}"
    }
  },
  "navbar": {
    "menu": {
      "feed": "Feed",
      "map": "Map"
    },
    "search": {
      "activities": "Activities",
      "activitiesNone": "No activities with that name",
      "agent": "Ask the assistant",
      "agentRequest": "Assistant request",
      "askAgent": "Ask the assistant “{query}”",
      "askAgentEmptyHint": "e.g. “villa with a pool under $80”",
      "askAgentHint": "Finds options from your description",
      "cancel": "Cancel",
      "clear": "Clear",
      "clearRecent": "Clear",
      "close": "Close search",
      "hotels": "Hotels",
      "hotelsNone": "No hotels with that name",
      "label": "Search",
      "nearby": "Near me",
      "nearbyHint": "Stays around you on the map",
      "nothingText": "Sounds like a trip description — the assistant will find options by meaning.",
      "nothingTitle": "No such place or hotel",
      "placeType": {
        "address": "Address",
        "city": "City",
        "country": "Country",
        "district": "District",
        "region": "Region"
      },
      "placeholder": "City, area or hotel — or describe what you’re looking for",
      "placeholderShort": "City, area or hotel",
      "places": "Places",
      "placesNone": "No places with that name",
      "popular": "Popular destinations",
      "quickStart": "Quick start",
      "recent": "Recent",
      "suggestions": "Suggestions"
    }
  },
  "notification": {
    "chatUnread": "{name} · {count, plural, =1 {# new message} other {# new messages}}",
    "comment": "{name} {others, plural, =0 {commented on your post} other {and # more commented on your post}}",
    "empty": "No notifications yet",
    "likeComment": "{name} {others, plural, =0 {liked your comment} other {and # more liked your comment}}",
    "likePost": "{name} {others, plural, =0 {liked your post} other {and # more liked your post}}",
    "meetupCancelled": "{name} cancelled the meetup",
    "meetupJoined": "{name} {others, plural, =0 {is going to your meetup} other {and # more are going to your meetup}}",
    "post": "{name} published a new post",
    "referralRewarded": "Referral reward credited to your balance",
    "reply": "{name} {others, plural, =0 {replied to your comment} other {and # more replied to your comment}}",
    "reviewReplied": "{name} {others, plural, =0 {replied to your review} other {and # more replied to your review}}",
    "title": "Notifications",
    "tripCompanion": "{name} {others, plural, =0 {will be in town on your dates} other {and # more will be in town on your dates}}"
  },
  "oauth": {
    "allow": "Allow access",
    "checking": "Checking the app…",
    "deny": "Cancel",
    "invalidText": "The link is missing required parameters. Go back to the app and try again.",
    "invalidTitle": "Invalid request",
    "requestText": "Continue only if you recognise this app.",
    "requestTitle": "{client} wants access to your account",
    "scope": {
      "bookingsRead": "See your bookings",
      "memory": "Remember your preferences",
      "none": "Search and checkout links only"
    },
    "title": "App access",
    "unknownClient": "This app or its callback address isn't registered with Pinns. Go back to the app and start again."
  },
  "page": {
    "activityDetail": {
      "description": "{title} in {city}, {country}. {price} per person.",
      "title": "{title}, {city}: from {price} per person — Pinns"
    },
    "activitySearch": {
      "description": "Tours, excursions and experiences near you. Ask the host anything in chat, book in a couple of minutes and share the trip in the feed.",
      "title": "Activities, tours and excursions — Pinns"
    },
    "cookies": {
      "description": "Which cookies and local storage Pinns uses for signing in, your language and analytics, why each one is needed, and how to change your choice at any time.",
      "title": "Cookie Policy — Pinns"
    },
    "destination": {
      "title": "{city}, {country}: hotels, stays and things to do — Pinns",
      "titlePrice": "{city}, {country}: hotels and stays from {price}, things to do — Pinns"
    },
    "destinations": {
      "description": "Cities with places to stay and things to do, booked directly with hosts and guides. Find your next trip — from buzzing capitals to quiet seaside towns.",
      "title": "Destinations — where to travel with Pinns"
    },
    "error": {
      "message": "Something went wrong on our side. Please try again.",
      "retry": "Try again",
      "title": "Something went wrong — Pinns"
    },
    "imprint": {
      "description": "Who operates Pinns, the company details behind the platform, and how to reach us about a booking, a listing, a legal notice or a press enquiry.",
      "title": "Legal Notice — Pinns"
    },
    "index": {
      "description": "Describe the trip in your own words — AI finds the stays, hotels and activities. Book in a couple of taps, pay by card or in crypto.",
      "title": "Stays, hotels and activities for your trip — Pinns"
    },
    "login": {
      "description": "Your bookings, chats with hosts, saved places and friends’ trips — right where you left them. Sign in by email, Google or GitHub.",
      "title": "Log in to Pinns — bookings, chats and saved places"
    },
    "notFound": {
      "backHome": "Go Home",
      "message": "The page you are looking for does not exist",
      "title": "Page not found — Pinns"
    },
    "place": {
      "description": "Book {product, select, Activity {tours and activities} other {hotels and stays}} in {city} online at great prices. Choose from {count, plural, one {# option} other {# options}} with real photos and reviews.",
      "title": "{product, select, Activity {Tours and activities} other {Hotels and stays}} in {city} — Pinns",
      "titlePrice": "Hotels and stays in {city} from {price} a night — Pinns"
    },
    "privacy": {
      "description": "What data Pinns collects when you book, host or chat, who receives it, how long it is kept, and how to access, correct or delete everything we hold.",
      "title": "Privacy Policy — Pinns"
    },
    "profile": {
      "description": "{name} on Pinns: the host's listings, activities and posts, reviews left by guests and a direct way to get in touch before you book.",
      "title": "{name} — profile on Pinns"
    },
    "signup": {
      "description": "Book stays and activities, share your trips in the feed. List your own place and get paid out in crypto through on-chain escrow.",
      "title": "Sign up for Pinns — stays, hotels and activities"
    },
    "terms": {
      "description": "The rules for booking stays and activities on Pinns, listing a place of your own, paying through crypto escrow, and how cancellations and refunds work.",
      "title": "Terms of Service — Pinns"
    },
    "unitDetail": {
      "description": "{title} ({type}) in {city}, {country}. From {price} per night{guests, plural, =0 {} =1 {, up to # guest} other {, up to # guests}}.",
      "title": "{title}, {city}: from {price} a night — Pinns"
    },
    "unitSearch": {
      "description": "Apartments, houses and hotels, from private hosts and hotel partners. Filters, honest guest reviews, payment by card or in crypto.",
      "title": "Stays and hotels: apartments, houses, rooms — Pinns"
    }
  },
  "payment": {
    "card": "Card",
    "crypto": "Crypto",
    "label": "Payment"
  },
  "paymentMethod": {
    "add": "Add payment method",
    "added": "Payment method saved",
    "addedOn": "Added {date}",
    "binding": "Connecting your wallet…",
    "consent": {
      "agree": "I agree",
      "text": "You authorize Pinns to charge this wallet in USDC for bookings you choose to pay before check-in, on the date shown in each booking, without asking you again. You can remove this method at any time.",
      "title": "Allow charges before check-in"
    },
    "deleteConfirm": "Remove this payment method? Scheduled payments will need another method.",
    "empty": "No saved payment methods",
    "hint": "A saved payment method lets you book now and pay before check-in.",
    "title": "Payment methods"
  },
  "post": {
    "comment": "Comment",
    "composer": "New post",
    "like": "Like",
    "linkCopied": "Post link copied",
    "notFound": "Post not found",
    "placeholder": "Share something…",
    "publish": "Publish",
    "share": "Share",
    "title": "Post"
  },
  "product": {
    "from": "from {price}",
    "nearby": "Nearby",
    "related": "You might also like",
    "relatedEmpty": "Nothing to show here yet",
    "relatedUnavailable": "Nothing nearby is free for these dates",
    "similar": "Similar",
    "status": {
      "Active": "Listed",
      "Declined": "Rejected",
      "Deleted": "Deleted",
      "Draft": "Draft",
      "Pending": "In review",
      "Unlisted": "Unlisted"
    }
  },
  "profile": {
    "bio": "Bio",
    "bioPlaceholder": "Tell people about yourself…",
    "birthday": "Birthday",
    "changeCover": "Change cover",
    "city": "City",
    "displayName": "Display name",
    "displayNamePlaceholder": "How your name appears",
    "follow": "Follow",
    "followers": "Followers",
    "following": "Following",
    "interests": "Interests",
    "joined": "Joined {date}",
    "languages": "Languages",
    "languagesPlaceholder": "Add languages…",
    "linkCopied": "Profile link copied",
    "message": "Message",
    "noFollows": "Nobody here yet",
    "notFound": "User not found",
    "notifyOff": "Turn off new post notifications",
    "notifyOn": "Notify about new posts",
    "phoneCountry": "Country code",
    "phonePlaceholder": "Enter your phone",
    "region": "Region",
    "saveInterests": "Save interests",
    "saveTravels": "Save travels",
    "share": "Share",
    "social": {
      "add": "Add link",
      "instagram": "Instagram",
      "selectType": "Choose network…",
      "telegram": "Telegram",
      "website": "Website",
      "x": "X"
    },
    "socialLinks": "Social links",
    "solanaAddress": "Solana payout address",
    "solanaAddressInvalid": "Not a valid Solana address",
    "solanaAddressNote": "Only a Solana wallet address is accepted — booking payouts are sent straight to it.",
    "solanaAddressPlaceholder": "Your Solana wallet address",
    "speaks": "Speaks {languages}",
    "tabs": {
      "likes": "Likes",
      "listings": "Listings",
      "posts": "Posts",
      "reviews": "Reviews"
    },
    "unfollow": "Unfollow",
    "updateSuccess": "Profile updated successfully",
    "visited": "{count, plural, =0 {Visited countries} one {Visited · # country} other {Visited · # countries}}"
  },
  "referral": {
    "admin": {
      "currency": "Bonus currency",
      "daysUnit": "days",
      "defaultRate": "Default rate",
      "deleteConfirm": "Remove this personal rate? The user falls back to the default.",
      "maxAmount": "Max bonus per booking",
      "maxBookings": "Bookings with a bonus",
      "newRate": "New personal rate",
      "percent": "Percent per booking",
      "saved": "Rate saved",
      "title": "Referral rates",
      "updated": "Updated {date}",
      "userId": "User id",
      "userRate": "Personal rate · user {id}",
      "windowDays": "Valid after sign-up"
    },
    "copied": "Invite link copied",
    "copy": "Copy invite link",
    "limitAmount": "up to {amount} per stay",
    "limitBookings": "{count, plural, =1 {their first booking} other {their first # bookings}}",
    "limitWindow": "{count, plural, =1 {within # day of signing up} other {within # days of signing up}}",
    "payout": "Credited once your friend checks out, as a bonus in your balance.",
    "terms": "Earn {percent}% of every completed booking your friends make",
    "title": "Invite a friend"
  },
  "region": {
    "action": {
      "import": "Update places",
      "rebuild": "Rebuild",
      "remove": "Remove supplier",
      "reset": "Reset cursor",
      "sync": "Run sync",
      "terminate": "Delete country"
    },
    "add": "Add country",
    "addSupplier": "Add {supplier}",
    "basemap": {
      "Detail": "Basemap: served countries",
      "World": "Basemap: world",
      "built": "Built {date} · {size}",
      "failed": "Build failed {date}: {error}",
      "notBuilt": "Not built yet",
      "rebuildStarted": "Basemap rebuild started"
    },
    "catalogSync": "Catalog sync",
    "clearHistory": "Clear history",
    "confirm": {
      "clearHistory": "Delete every finished job from the history?",
      "deleteJob": "Delete this job from history?",
      "remove": "Remove {supplier} from {country}? Its listings are unpublished.",
      "reset": "Reset the {supplier} cursor? The next sync walks the catalog from the start; imported listings stay.",
      "terminate": "Delete {country}? Supplier listings are unpublished and imported data is removed."
    },
    "importStarted": "Places update started",
    "jobStatus": {
      "Completed": "Completed",
      "Failed": "Failed",
      "Running": "Running"
    },
    "jobType": {
      "Backfill": "Backfill",
      "Incremental": "Incremental",
      "Retire": "Unpublish"
    },
    "jobs": "Job history",
    "jobsEmpty": "No jobs yet",
    "lastPage": "Crawled to page {page}",
    "metric": {
      "created": "Created",
      "deleted": "Deleted",
      "failed": "Failed",
      "pages": "Pages",
      "probed": "Probed",
      "skipped": "Skipped",
      "unchanged": "Unchanged",
      "unparsed": "Unparsed",
      "updated": "Updated"
    },
    "neverSynced": "Not crawled yet",
    "pausedByRegion": "Paused with the country",
    "places": "Places",
    "placesFailed": "Import failed {date}: {error}",
    "placesImported": "Places: {count, number}, imported {date}",
    "placesNotImported": "Places not imported yet",
    "regions": "Countries",
    "regionsEmpty": "No countries yet",
    "status": {
      "Active": "Active",
      "Paused": "Paused",
      "Terminated": "Deleted",
      "Terminating": "Deleting"
    },
    "syncOff": "Sync not enabled",
    "syncedUntil": "Synced until {date}",
    "title": "Regions",
    "world": "Rest of the world: countries and cities"
  },
  "report": {
    "action": "Report",
    "already": "You've already reported this",
    "comment": "Comment",
    "commentPlaceholder": "What happened?",
    "hint": "Moderators will review your report. The person won't know it was you.",
    "queue": {
      "empty": "No open reports",
      "hint": "{count, plural, =0 {Nothing to review} =1 {# open report} other {# open reports}}",
      "resolve": "Resolve",
      "resolved": "Report resolved",
      "title": "Reports",
      "users": "User #{reported} · reported by #{reporter}"
    },
    "reasons": {
      "Harassment": "Harassment",
      "Inappropriate": "Inappropriate content",
      "Other": "Other",
      "Scam": "Scam or fraud",
      "Spam": "Spam",
      "Underage": "Underage user"
    },
    "sent": "Report on {name} sent",
    "submit": "Send report",
    "title": "Report {name}"
  },
  "reset": {
    "errorInvalid": "This reset link is invalid or has expired.",
    "invalidText": "This reset link is missing or malformed. Request a new one.",
    "invalidTitle": "Invalid link",
    "requestNew": "Request a new link",
    "submit": "Update password",
    "subtitle": "Choose a strong new password for your account.",
    "success": "Password updated. Please log in.",
    "title": "Set a new password"
  },
  "review": {
    "aiSummary": "AI summary",
    "allCategories": "All categories",
    "aspect": {
      "Amenities": "Amenities",
      "Cleanliness": "Cleanliness",
      "FoodAndBeverage": "Food and drink",
      "Location": "Location",
      "OverallExperience": "Overall",
      "RoomQuality": "Room",
      "Service": "Service",
      "ValueForMoney": "Value for money"
    },
    "basedOn": "{count, plural, =1 {based on # review} other {based on # reviews}}",
    "cons": "What could be better",
    "content": "Your review",
    "contentPlaceholder": "Share your experience…",
    "create": "Write a Review",
    "guest": "Guest",
    "guestsTitle": "Guest reviews",
    "hidden": "Visible only to you until the other side posts or the window closes",
    "hint": {
      "1": "Terrible",
      "2": "Poor",
      "3": "Average",
      "4": "Good",
      "5": "Excellent"
    },
    "hotelTitle": "Hotel guest reviews",
    "latest": "Latest reviews",
    "leave": "Leave a review",
    "notMentioned": "Not mentioned yet: {categories}",
    "pros": "What guests liked",
    "reply": "Reply",
    "replyPlaceholder": "Write a reply…",
    "replySend": "Send reply",
    "showMore": "Show more reviews",
    "stars": "Rating",
    "title": "Reviews",
    "trip": {
      "Business": "Business trip",
      "Couple": "Travelled as a couple",
      "Family": "Travelled with family",
      "Group": "Travelled with a group",
      "Solo": "Travelled solo"
    },
    "verdict": {
      "exceptional": "Exceptional",
      "fair": "Fair",
      "good": "Good",
      "pleasant": "Pleasant",
      "veryGood": "Very good"
    },
    "windowClosed": "The review window has closed"
  },
  "security": {
    "devices": {
      "current": "This device",
      "error": "Failed to load devices",
      "lastSeen": {
        "long": "Inactive for a while",
        "recent": "Active just now",
        "today": "Active at {time}",
        "yesterday": "Active yesterday at {time}"
      },
      "refresh": "Refresh",
      "revoke": "Revoke",
      "revokeConfirm": "Revoke {label}?",
      "revokeHint": "The device will be signed out immediately.",
      "revokedToast": "Device revoked",
      "title": "Active devices",
      "unknownDevice": "Unknown device",
      "unknownDeviceWithDate": "Device added {date}"
    },
    "push": {
      "denied": "Permission blocked. Open browser settings to allow notifications.",
      "label": "Push notifications",
      "unsupported": "Push notifications are not supported in this browser."
    }
  },
  "selector": {
    "searchPlaceholder": "Search…"
  },
  "settings": {
    "account": "Account",
    "blocked": {
      "empty": "You haven't blocked anyone",
      "hint": "Blocked people can't message you or see you among travel companions.",
      "title": "Blocked users"
    }
  },
  "signup": {
    "alreadyHaveAccount": "Already have an account?",
    "checkEmailText": "We sent a verification link to {email}. Open it to activate your account.",
    "confirmPassword": "Confirm Password",
    "confirmPasswordInput": "Confirm password",
    "errorTaken": "That email or username is already taken.",
    "heading": "Create account",
    "loginLink": "Login here",
    "resend": "Resend email",
    "resent": "Verification email sent again.",
    "strength": {
      "fair": "Fair",
      "good": "Good",
      "strong": "Strong",
      "weak": "Weak"
    },
    "subtitle": "Start exploring in 30 seconds",
    "title": "Sign Up",
    "validation": {
      "confirmPasswordError": "Passwords do not match",
      "confirmPasswordSuccess": "✓ Passwords match",
      "emailError": "Please enter a valid email address",
      "emailSuccess": "✓ Valid email",
      "passwordError": "Password: 8-32 chars, uppercase, lowercase, number, special (#$^+=!*()@%&)",
      "passwordSubmit": "Password must be 8-32 characters with uppercase, lowercase, number and special character",
      "passwordSuccess": "✓ Strong password",
      "usernameError": "Username: 4-24 chars, alphanumeric, no leading _ or .",
      "usernameSubmit": "Username must be 4-24 characters, alphanumeric only, cannot start with _ or .",
      "usernameSuccess": "✓ Valid username"
    }
  },
  "stats": {
    "allCurrencies": "All",
    "approved": "Approved",
    "balance": "Balance",
    "bookingCount": "{count, plural, =1 {# booking} other {# bookings}}",
    "byCurrency": "By currency",
    "byProduct": "By product",
    "currencies": "Currencies",
    "earnings": "Earnings",
    "export": "Download statement",
    "flow": "Flow (in/out)",
    "gmv": "GMV",
    "in": "In",
    "invoices": "Invoices",
    "noData": "No data available",
    "noMerchant": "No merchant selected",
    "out": "Out",
    "paidOut": "Paid out",
    "peakCurrency": "Top: {currency}",
    "peakStatus": "Top: {status}",
    "pending": "Pending payout",
    "range": {
      "1y": "1y",
      "30d": "30d",
      "7d": "7d",
      "90d": "90d",
      "all": "All",
      "ytd": "YTD"
    },
    "refunds": "Refunds",
    "statusDistribution": "Status distribution",
    "tab": {
      "bookings": "Bookings",
      "earnings": "Earnings",
      "overview": "Overview",
      "revenue": "Platform revenue"
    },
    "takeRate": "Take rate",
    "totalBookings": "Total bookings",
    "totalCount": "{count} total",
    "transactions": "Transactions",
    "txCount": "{count, plural, =1 {# transaction} other {# transactions}}",
    "walletCount": "{count, plural, =1 {# wallet} other {# wallets}}",
    "walletsTitle": "Payment wallets"
  },
  "toast": {
    "attachment": {
      "failed": "Attachment failed: {reason}"
    },
    "booking": {
      "Approved": "Booking #{id} approved",
      "Cancelled": "Booking #{id} cancelled",
      "Completed": "Booking #{id} completed",
      "Declined": "Booking #{id} declined",
      "Expired": "Booking #{id} expired",
      "Pending": "Booking #{id} is awaiting payment",
      "Refunding": "Booking #{id} refund is processing",
      "Requested": "New booking request #{id}"
    },
    "chatInvite": "New chat invite",
    "chatMemberAddedSelf": "You were added to a chat",
    "chatMemberRemovedSelf": "You were removed from a chat",
    "deviceRevokedSelf": "This device was signed out",
    "dispute": {
      "Open": "Dispute opened for booking #{bookingId}",
      "Resolved": "Dispute on booking #{bookingId} resolved",
      "Resolving": "Dispute on booking #{bookingId} is settling"
    },
    "geo": {
      "permissionDenied": "Location access denied. Enable it in Settings → Privacy → Location Services.",
      "timeout": "Couldn't get your location in time. Try again.",
      "unavailable": "Location unavailable on this device."
    },
    "invoice": {
      "Cancelled": "Invoice #{id} cancelled",
      "Completed": "Invoice #{id} completed",
      "Expired": "Invoice #{id} expired",
      "Failed": "Invoice #{id} failed",
      "Pending": "Invoice #{id} is pending",
      "Refund": "Invoice #{id} refunded"
    },
    "merchant": {
      "active": "Your merchant is ready to accept payments",
      "terminated": "The merchant is closed",
      "walletCreated": "The custody wallet is ready"
    },
    "product": {
      "approved": "Listing #{productId} is live",
      "declined": "Listing #{productId} was declined"
    }
  },
  "trip": {
    "bookingExtend": "You can extend the dates beyond your booking.",
    "bookingVerified": "Booking confirmed",
    "city": "City",
    "cityChat": "City chat",
    "cityChatLater": "The city chat opens closer to your dates",
    "cityFromBooking": "Taken from your booking",
    "cityLocked": "The city can't be changed. Add a new trip instead.",
    "cityPage": "About the city",
    "cityPlaceholder": "Choose a city",
    "companions": "Companions",
    "companionsHint": "Travelers in the city on your dates",
    "create": "New trip",
    "created": "Trip added",
    "dates": "Dates",
    "datesHint": "Up to {days} days",
    "days": "{count, plural, =1 {# day} other {# days}}",
    "delete": "Delete trip",
    "deleteConfirm": "Companions will no longer see you on these dates.",
    "deleted": "Trip deleted",
    "edit": "Edit trip",
    "emptyText": "Add where and when you're going to find travel companions and city meetups.",
    "error": {
      "booking": "We couldn't find a confirmed booking for this trip",
      "bookingRange": "The dates must include your booking",
      "city": "We couldn't find this city",
      "dates": "These dates don't work — please pick others",
      "order": "The end date must be after the start date",
      "overlap": "You already have a trip on these dates",
      "past": "These dates have already passed",
      "tooFar": "Trips can be planned up to a year ahead",
      "tooLong": "A trip can last up to {days} days"
    },
    "filter": {
      "all": "All",
      "now": "Now",
      "upcoming": "Upcoming"
    },
    "fromBooking": "Add from booking",
    "fromBookingTitle": "Your trip to {city}",
    "identityVerified": "ID verified",
    "invite": "Invite friends",
    "meetups": "Meetups",
    "mine": "My trips",
    "more": "Show more",
    "noCompanions": "No one else is in {city} on your dates yet",
    "noCompanionsHint": "We'll let you know as soon as someone's trip overlaps with yours.",
    "noTrips": "No trips",
    "notFound": "Trip not found",
    "note": "Note",
    "notePlaceholder": "What you'd like to do, who you're looking for",
    "privacy": "Only people with overlapping dates see your trip. Your address and booking stay hidden.",
    "search": "Search trips…",
    "select": "Choose a trip",
    "share": {
      "action": "Find travel companions",
      "label": "Travel companions",
      "open": "Open trip",
      "text": "See who else will be in the city on your dates."
    },
    "submit": "Add trip",
    "title": "Trips",
    "together": "{count, plural, =1 {# day together} other {# days together}}",
    "updated": "Trip updated"
  },
  "unit": {
    "amenities": "Amenities",
    "amenityType": {
      "AirConditioning": "Air conditioning",
      "AirportShuttle": "Airport shuttle",
      "Balcony": "Balcony",
      "Bar": "Bar",
      "Breakfast": "Breakfast",
      "Dryer": "Dryer",
      "Elevator": "Elevator",
      "EvCharger": "EV charger",
      "Fireplace": "Fireplace",
      "Fitness": "Gym",
      "Heating": "Heating",
      "HotTub": "Hot tub",
      "Kitchen": "Kitchen",
      "LuggageStorage": "Luggage storage",
      "Parking": "Parking",
      "Pool": "Pool",
      "Restaurant": "Restaurant",
      "RoomService": "Room service",
      "Sauna": "Sauna",
      "Spa": "Spa",
      "Stove": "Stove",
      "Tv": "TV",
      "Washer": "Washer",
      "WheelchairAccessible": "Wheelchair accessible",
      "WiFi": "Wi-Fi",
      "Workspace": "Workspace"
    },
    "area": "{size} m²",
    "areaLabel": "Area",
    "bathrooms": "{count, plural, =1 {# Bathroom} other {# Bathrooms}}",
    "bathroomsLabel": "Bathrooms",
    "bedrooms": "{count, plural, =1 {# Bedroom} other {# Bedrooms}}",
    "bedroomsLabel": "Bedrooms",
    "calendar": {
      "closed": "Closed",
      "label": "Calendar",
      "legendClosed": "Closed",
      "legendImported": "From an external calendar",
      "legendOverride": "Overridden",
      "maxNights": "Max nights",
      "mergeHint": "An empty field is left as it is. Use “Clear overrides” to fall back to the base values.",
      "minNights": "Min nights",
      "pickRange": "Pick a date or a range",
      "quantity": "Rooms available",
      "reset": "Clear overrides",
      "resetConfirm": "Clear every override on the selected dates and fall back to the base values?",
      "saved": "Calendar updated",
      "scope": "Applies to",
      "scopeUnit": "The whole property",
      "selection": "{from} — {to}",
      "sync": {
        "add": "Add calendar",
        "added": "Calendar connected",
        "broken": "The link stopped working. Last successful sync: {date}. The dates it already blocked stay until it is fixed.",
        "copied": "Link copied",
        "copy": "Copy calendar link",
        "deleteConfirm": "Disconnect this calendar? Its blocked dates will be released.",
        "empty": "No external calendars yet",
        "exportHint": "Paste this link into Airbnb → Import calendar so your Pinns bookings block those dates too. They refresh it every few hours.",
        "exportTitle": "Export to other sites",
        "importHint": "In Airbnb: Listing → Availability → Sync calendars → Export. Booking and VRBO use the same format. We refresh every hour.",
        "name": "Name",
        "neverSynced": "Not synced yet",
        "syncedAt": "Synced {date} · {count, plural, =0 {no blocked ranges} =1 {# blocked range} other {# blocked ranges}}",
        "title": "External calendars",
        "url": "iCal link"
      }
    },
    "checkInTime": "Check-in time",
    "checkOutTime": "Check-out time",
    "create": "Create Unit",
    "deferredPayment": "Accept payment before check-in",
    "instant": "Instant booking",
    "label": "{count, plural, =1 {Unit} other {Units}}",
    "locationHeading": "Location",
    "maxNightsLabel": "Max nights",
    "minNights": "{count, plural, =1 {min # night} other {min # nights}}",
    "minNightsLabel": "Min nights",
    "notFound": "Unit not found",
    "petsAllowed": "Pets allowed",
    "prepaid": "Prepaid",
    "pricedAt": "price as of {date}",
    "property": "Property type",
    "rates": {
      "add": "Add rate",
      "enabled": "Available for booking",
      "feesAtProperty": "Fees at the property",
      "hint": "A rate is one combination of price, meals and cancellation terms — for example, breakfast included, non-refundable. Rates here sell the whole place; to sell rooms separately, price them inside each room below.",
      "item": "Rate {index}",
      "label": "Rates",
      "remove": "Remove rate"
    },
    "reviewCount": "{count, plural, =1 {# review} other {# reviews}}",
    "rooms": {
      "add": "Add room",
      "hint": "A room is a category with its own photos and prices. Leave this empty if the place is rented as a whole.",
      "item": "Room {index}",
      "label": "Rooms",
      "quantity": "Rooms of this type",
      "remove": "Remove room",
      "sizeSqm": "Size, m²",
      "title": "Room name"
    },
    "sleepsLabel": "Sleeps",
    "starRating": "{count, plural, one {# star} other {# stars}}",
    "tagsMaxReached": "Maximum {max} tags allowed",
    "unitType": {
      "Apartment": "Apartment",
      "Campsite": "Campsite",
      "Chalet": "Chalet",
      "Cottage": "Cottage",
      "Hostel": "Hostel",
      "Hotel": "Hotel",
      "House": "House",
      "Loft": "Loft",
      "Resort": "Resort",
      "Studio": "Studio",
      "Villa": "Villa"
    },
    "validation": {
      "createError": "Failed to create unit. Please try again.",
      "updateError": "Failed to update unit. Please try again."
    },
    "verifiedHost": "Verified host"
  },
  "upload": {
    "dropOrClick": "Drop files here or click to upload",
    "maxReached": "Maximum {max} files reached",
    "uploading": "Wait for the upload to finish"
  },
  "user": {
    "balance": {
      "available": "Available to withdraw",
      "empty": "Your balance is empty — funds from completed bookings (escrow payouts) will appear here.",
      "inDispute": "In Dispute",
      "inEscrow": "In escrow"
    },
    "logout": "Logout"
  },
  "verify": {
    "errorExpired": "This verification link has expired. Please sign up again.",
    "errorTaken": "This account is already verified. Please log in.",
    "errorText": "This link is invalid or has expired. Try signing up again.",
    "errorTitle": "Verification failed",
    "signupAgain": "Sign up again",
    "title": "Email verification",
    "verifying": "Verifying your email…"
  },
  "wallet": {
    "add": "Add Wallet",
    "cctp": {
      "chain": {
        "arbitrum": "Arbitrum",
        "avalanche": "Avalanche",
        "base": "Base",
        "ethereum": "Ethereum",
        "optimism": "Optimism",
        "polygon": "Polygon"
      },
      "noSolana": "Connect a Solana wallet first — refunds are paid to it",
      "step": {
        "approving": "Approve USDC in your wallet…",
        "building": "Preparing transaction…",
        "burning": "Confirm the transfer…",
        "relaying": "Bridging to Solana…"
      }
    },
    "connect": "Connect another",
    "disconnect": "Disconnect",
    "method": {
      "cctp": "EVM (CCTP)",
      "solana": "Solana"
    },
    "notConnected": "Wallet not connected",
    "step": {
      "awaiting-signature": "Confirm in your wallet…",
      "building": "Preparing transaction…"
    },
    "viewAddress": "View address on explorer",
    "viewTx": "View transaction"
  }
}
