Skip to main content
PayNext automatically translates the checkout form into the following languages. You don’t need to customize it, as we have adapted our checkout. However, if you’d like, you can override it manually.

Supported Locales

The PayNext SDK supports multiple locales for internationalization with automatic translations:
CodeLanguageCountry/RegionISO 639-1
arArabic-ar
bgBulgarianBulgariabg
csCzechCzech Republiccs
daDanishDenmarkda
deGermanGermanyde
elGreekGreeceel
enEnglish-en
esSpanishSpaines
etEstonianEstoniaet
fiFinnishFinlandfi
filFilipinoPhilippinesfil
frFrenchFrancefr
hrCroatianCroatiahr
huHungarianHungaryhu
idIndonesianIndonesiaid
isIcelandicIcelandis
itItalianItalyit
jaJapaneseJapanja
koKoreanSouth Koreako
ltLithuanianLithuanialt
lvLatvianLatvialv
msMalayMalaysiams
mtMalteseMaltamt
nbNorwegian BokmålNorwaynb
nlDutchNetherlandsnl
nl-BEDutch (Belgium)Belgiumnl
plPolishPolandpl
ptPortuguesePortugalpt
roRomanianRomaniaro
ruRussianRussiaru
skSlovakSlovakiask
slSlovenianSloveniasl
srSerbianSerbiasr
svSwedishSwedensv
thThaiThailandth
trTurkishTurkeytr
uaUkrainianUkraineuk
viVietnameseVietnamvi
zhChineseChinazh
All locale codes follow ISO 639-1 standards. Ukrainian uses ua as the locale code while maintaining ISO 639-1 compliance with uk for the language identifier.

Locale Detection

Automatic Detection

The PayNext SDK automatically detects the user’s locale from browser settings:
Configure the locale property (and any overrides) on the object you pass into checkout.mount('element-id', { ...config }) after instantiating PayNextCheckout(), following the pattern in Mount the Checkout.
auto-detection component
import { type PayNextConfig } from '@paynext/sdk'

// Automatically detects user's browser locale
const autoLocaleConfig: PayNextConfig = {
  /* other options */
  // locale not specified - uses browser default
}

// When mounting (see Getting Started "Mount the Checkout" section):
// const checkout = new PayNextCheckout()
// await checkout.mount('checkout-container', autoLocaleConfig)
Refer to Mount the Checkout for the complete mounting flow.

Optional Manual Override

If you need to override automatic detection, you can specify a locale:
manual-locale component
import { type PayNextConfig } from '@paynext/sdk'

// Force specific locale
const germanLocaleConfig: PayNextConfig = {
  /* other options */
  locale: 'de', // Always use German
}

// When mounting (see Getting Started "Mount the Checkout" section):
// const checkout = new PayNextCheckout()
// await checkout.mount('checkout-container', germanLocaleConfig)
Refer to Mount the Checkout for the complete mounting flow.

Right-to-Left (RTL) Support

The PayNext SDK automatically handles RTL layout for the Arabic locale:
rtl-support component
import { type PayNextConfig } from '@paynext/sdk'

// Automatically applies RTL layout and styling
const rtlConfig: PayNextConfig = {
  /* other options */
  locale: 'ar',
}

// When mounting (see Getting Started "Mount the Checkout" section):
// const checkout = new PayNextCheckout()
// await checkout.mount('checkout-container', rtlConfig)
Refer to Mount the Checkout for the complete mounting flow.
RTL layout is automatically applied for the Arabic locale. No additional configuration is needed.

Locale Fallback

When a locale is not supported or fails to load:
locale-fallback component
import { type PayNextConfig } from '@paynext/sdk'

const fallbackConfig: PayNextConfig = {
  /* other options */
  locale: 'unsupported-locale', // Falls back to 'en'
}

// When mounting (see Getting Started "Mount the Checkout" section):
// const checkout = new PayNextCheckout()
// await checkout.mount('checkout-container', fallbackConfig)
Refer to Mount the Checkout for the complete mounting flow.
The PayNext SDK automatically falls back to English (en) if the specified locale is not supported or fails to load.