Primer Checkout supports multiple languages and automatically adapts the checkout UI to the shopper’s locale.
Supported Locales
Primer Checkout supports the following locales. If a specific regional variant is not supported, it falls back gracefully to the closest available language.
Locales marked iOS, Android are not yet available on Web. Regional variants automatically fall back to the base language — for example, pl-PL (Polish - Poland) will use pl (Polish) translations.
Pass a locale to the SDK using the options property. See SDK Options for details.Web supports all locales marked All in the table above. The remaining locales (marked iOS, Android) are coming soon. The SDK automatically adapts to the device’s locale for field labels, error messages, button text, currency formatting, and date formatting. No additional configuration is required.Android supports all locales listed in the table above.
The SDK’s text (field labels, error messages and button text) uses the language your app runs in. Amounts are formatted in the locale from PrimerLocaleData in PrimerSettings, which defaults to the device locale. No additional configuration is required.iOS supports all locales listed in the table above. To set the locale for amounts and for payment-provider pages such as redirect, Klarna and QR code methods, use PrimerLocaleData in PrimerSettings:
Locale Fallback Behavior
Primer Checkout Web uses BCP 47 language tags and implements automatic fallback for regional variants.How it works
- Exact match: The SDK first looks for an exact match (e.g.,
pl-PL)
- Base language fallback: If no exact match exists, it falls back to the base language (e.g.,
pl)
- Default fallback: If neither matches, it defaults to
en-GB
Usage
Check SDK options guide to learn how to pass a locale property. The Android SDK follows the standard Android locale resolution. The device’s system locale is used automatically, and Compose’s built-in layout mirroring handles RTL languages.The SDK formats amounts using the currency code from your client session:RTL support
The SDK supports right-to-left (RTL) layouts automatically when the device locale is set to an RTL language. Compose’s built-in layout mirroring handles the directional adjustments. The iOS SDK follows standard iOS localization. Its text uses the language your app runs in.How it works
- UI language: Field labels, error messages and button text follow the language your app runs in
- Base language fallback: If only the language matches (e.g.,
en for en-AU), the base language strings are used
- Default fallback: If no match is found, English (
en) is used as the fallback
- Amount formatting: Amounts are formatted in the locale from
PrimerLocaleData in PrimerSettings, which defaults to the device locale
Setting the amount locale
PrimerLocaleData sets the locale used to format amounts and the locale sent to payment-provider pages. It does not change the language of the SDK’s text.Use session.formatAmount(_:) to format an amount in minor units the way the SDK’s own screens do. It uses the client session’s currency and the locale from PrimerLocaleData, and returns nil until the session is ready.RTL support
The SDK supports right-to-left (RTL) layouts automatically when your app runs in an RTL language such as Arabic (ar) or Hebrew (he). The SDK applies your app’s layout direction to its views, and SwiftUI’s layout mirroring handles the directional adjustments.