Labels Reference

All user-facing text in Qariyb widgets can be customized through QariybConfig.labels.

window.QariybConfig = {
  publishableKey: 'pk_live_...',
  labels: {
    getTickets: 'Reserve Your Spot',
    continueToCheckout: 'Continue',
  },
};

Common

KeyDefaultDescription
loading'Loading...'Loading state text
error'Error'Error heading
retry'Retry'Retry button text
back'Back'Back button text
continue'Continue'Continue button text
close'Close'Close button text

Ticket Selection

KeyDefaultDescription
selectTickets'Select Tickets'Section heading
noTicketsAvailable'No tickets available'Empty state message
soldOut'Sold Out'Sold out badge text
remaining'{count} remaining'Availability (template)
getTickets'Get Tickets'CTA button text
continueToCheckout'Continue to Checkout'Continue button text

Customer Details Form

KeyDefaultDescription
yourDetails'Your Details'Section heading
fullName'Full Name'Name field label
fullNamePlaceholder'Fatima Hassan'Name placeholder
email'Email'Email field label
emailPlaceholder'fatima@example.com'Email placeholder
phone'Phone'Phone field label
phonePlaceholder'+44 7700 900123'Phone placeholder
phoneOptional'Phone (optional)'Optional phone label
additionalInfo'Additional Information'Custom questions heading
selectPlaceholder'Select...'Dropdown placeholder
required'*'Required field indicator

Payment

KeyDefaultDescription
payment'Payment'Section heading
pay'Pay'Pay button prefix
payAmount'Pay {amount}'Pay button with amount
completeRegistration'Complete Registration'Free event button
processingOrder'Processing your order...'Processing message
free'Free'Free ticket/event label
fromPrice'From {price}'Starting price display

Order Summary

KeyDefaultDescription
orderSummary'Order Summary'ARIA label
yourOrder'YOUR ORDER'Section heading
subtotal'Subtotal'Subtotal label
total'Total'Total label
ticketCount'{count} ticket'Singular ticket count
ticketCountPlural'{count} tickets'Plural ticket count

Success State

KeyDefaultDescription
registrationSubmitted'Registration Submitted!'Pending approval heading
youreRegistered"You're registered!"Confirmed heading
pendingApproval"Your registration is pending approval..."Pending message
confirmationSent'Confirmation email sent to {email}'Confirmation message
orderNumber'Order'Order number label
ticketsLabel'Tickets'Tickets label

Error Messages

KeyDefaultDescription
somethingWentWrong'Something went wrong'Generic error heading
unexpectedError'An unexpected error occurred'Fallback error
failedToLoad'Failed to load'Load failure
failedToLoadEvent'Failed to load event'Event load failure
failedToLoadTickets'Unable to load tickets'Tickets load failure
noEventId'No event ID provided'Missing ID error
eventNotFound'Event not found'404 error
paymentFailed'Payment failed'Payment error
tryAgain'Try Again'Retry button text

KeyDefaultDescription
secureCheckout'Secure checkout'Security badge text
secureCheckoutPoweredBy'Secure checkout powered by Qariyb'Full security message
ticketsDeliveredInstantly'Tickets delivered instantly via email'Delivery message

Accessibility (Screen Readers)

KeyDefaultDescription
ariaCloseModal'Close dialog'Modal close button
ariaAddTicket'Add one {ticketName} ticket'Add button
ariaRemoveTicket'Remove one {ticketName} ticket'Remove button
ariaTicketQuantity'{count} {ticketName} tickets selected'Quantity announcement
ariaLoadingContent'Loading content, please wait'Loading state

Template Placeholders

Some labels use {placeholder} syntax:

PlaceholderUsed InReplaced With
{count}remaining, ticketCount, etc.Number
{amount}payAmountFormatted price (e.g., "$25.00")
{price}fromPriceFormatted price
{email}confirmationSentCustomer email
{ticketName}ariaAddTicket, ariaRemoveTicket, ariaTicketQuantityTicket type name

Example

labels: {
  remaining: '{count} spots left',
  payAmount: 'Pay {amount} now',
  confirmationSent: 'We sent your tickets to {email}',
  ariaAddTicket: 'Add a {ticketName}',
}

TypeScript Interface

interface Labels {
  // Common
  loading: string;
  error: string;
  retry: string;
  back: string;
  continue: string;
  close: string;

  // Tickets
  selectTickets: string;
  noTicketsAvailable: string;
  soldOut: string;
  remaining: string;
  getTickets: string;
  continueToCheckout: string;

  // Checkout form
  yourDetails: string;
  fullName: string;
  fullNamePlaceholder: string;
  email: string;
  emailPlaceholder: string;
  phone: string;
  phonePlaceholder: string;
  phoneOptional: string;
  additionalInfo: string;
  selectPlaceholder: string;
  required: string;

  // Payment
  payment: string;
  pay: string;
  payAmount: string;
  completeRegistration: string;
  processingOrder: string;
  free: string;
  fromPrice: string;

  // Order summary
  orderSummary: string;
  yourOrder: string;
  subtotal: string;
  total: string;
  ticketCount: string;
  ticketCountPlural: string;

  // Success
  registrationSubmitted: string;
  youreRegistered: string;
  pendingApproval: string;
  confirmationSent: string;
  orderNumber: string;
  ticketsLabel: string;

  // Errors
  somethingWentWrong: string;
  unexpectedError: string;
  failedToLoad: string;
  failedToLoadEvent: string;
  failedToLoadTickets: string;
  noEventId: string;
  eventNotFound: string;
  paymentFailed: string;
  tryAgain: string;

  // Footer / Trust
  secureCheckout: string;
  secureCheckoutPoweredBy: string;
  ticketsDeliveredInstantly: string;

  // Accessibility
  ariaCloseModal: string;
  ariaAddTicket: string;
  ariaRemoveTicket: string;
  ariaTicketQuantity: string;
  ariaLoadingContent: string;
}

Programmatic API

import { setLabels, resetLabels, getLabels } from '@qariyb/js';

// Update labels
setLabels({
  getTickets: 'Reserve Now',
});

// Get current labels
const labels = getLabels();
console.log(labels.getTickets); // 'Reserve Now'

// Reset to defaults
resetLabels();

Example: Custom English

window.QariybConfig = {
  publishableKey: 'pk_live_...',
  labels: {
    // Make it more casual
    yourDetails: 'Tell us about yourself',
    fullName: 'Your name',
    fullNamePlaceholder: 'John Smith',
    email: 'Your email',
    emailPlaceholder: 'john@example.com',

    // More exciting CTAs
    getTickets: 'Grab Your Tickets!',
    continueToCheckout: "Let's Do This",
    payAmount: 'Complete Purchase - {amount}',
    completeRegistration: 'Claim Your Spot',

    // Friendlier messages
    youreRegistered: "You're in!",
    confirmationSent: "Check {email} for your tickets",
    secureCheckout: 'Secure checkout',

    // Clearer errors
    somethingWentWrong: 'Oops! Something broke',
    tryAgain: 'Give it another shot',
  },
};

Right-to-left languages

You can translate every string, and that part works today. The layout does not mirror: the SDK does not currently implement RTL, and setting dir="rtl" on your page will not flip the widget's alignment, icon placement or spacing.

<html dir="rtl" lang="ar">
  <body>
    <!-- Strings are Arabic; layout direction stays left-to-right. -->
    <qariyb-checkout event-id="01HW..."></qariyb-checkout>
  </body>
</html>
window.QariybConfig = {
  publishableKey: 'pk_live_...',
  labels: {
    getTickets: 'احصل على التذاكر',
    selectTickets: 'اختر التذاكر',
    continueToCheckout: 'متابعة',
    // ... Arabic translations
  },
};

Labels not listed above

These keys are part of Labels but were missing from the tables on this page. They are overridden the same way as any other.

KeyDefault
salesClosedSales Closed
soldOutMessageThis event is sold out.
salesClosedMessageTickets for this event are not on sale right now.
noEventsAvailableNo events available
phoneRequiredPhone *
selectOptionSelect an option
discountCodeDiscount Code
discountCodePlaceholderEnter code
discountApplyApply
discountApplyingApplying…
discountApplied{code} applied — {value} off
discountLineDiscount ({code})
discountUnavailableWe couldn't apply that code just now. Please try again.
validationErrorPlease check your information
fieldRequired{field} is required
invalidEmailPlease enter a valid email address
incompletePaymentPlease complete your payment details
stepOfStep {current} of {total}
processingProcessing...

Placeholders in these labels

Alongside the placeholders documented above, these are substituted at runtime. An unrecognised placeholder is left in the string as written.

PlaceholderUsed in
{code}discountApplied, discountLine
{value}discountApplied
{field}fieldRequired
{current}, {total}stepOf

Was this page helpful?