Localization
Configure language and locale settings in LostChurn — 10 supported locales, RTL support, dunning message translation, dashboard language switching, and Stripe preferred_locales integration.
LostChurn supports 10 locales out of the box, enabling you to recover failed payments in your customers' preferred language. Localized dunning messages see higher open rates and faster recovery times because customers engage more readily with content in their native language. Localization is available on all tiers.
Supported Locales
| Locale Code | Language | Script Direction |
|---|---|---|
en | English | LTR |
es | Spanish | LTR |
fr | French | LTR |
de | German | LTR |
pt-BR | Portuguese (Brazil) | LTR |
ja | Japanese | LTR |
ko | Korean | LTR |
zh-Hans | Chinese (Simplified) | LTR |
hi | Hindi | LTR |
ar | Arabic | RTL |
English is the default locale and is used as the fallback when a customer's preferred locale is not available or not configured.
LostChurn ships with approximately 2,700 translated strings across all 10 locales, covering every dunning template, dashboard label, self-service portal element, and error message.
Setting the Default Locale
Your account's default locale determines the language used for:
- New customer records that do not have a locale set
- Dashboard UI for new team members
- Fallback language when a customer's locale is not supported
Configure the Default
- Navigate to Settings > General > Localization
- Select your default locale from the dropdown
- Click Save
The default locale applies account-wide. Individual customers and team members can override it with their own preference.
Per-Customer Locale
Each customer record includes a locale field that determines what language their dunning messages are sent in. This field can be set in three ways:
1. Automatic Detection from PSP
When LostChurn receives a webhook from your payment processor, it checks for locale information on the customer record:
- Stripe: Uses the
preferred_localesarray on the Customer object (see Stripe integration below) - Braintree: Uses the customer's country and browser locale
- Other PSPs: Maps the customer's billing country to the most common locale
2. Manual Override
Set a customer's locale directly in the LostChurn dashboard:
- Navigate to Customers and find the customer record
- Click Edit on the customer detail page
- Select the locale from the Language dropdown
- Click Save
Manual overrides take precedence over automatic detection.
3. API
Set the locale programmatically via the LostChurn REST API:
curl -X PATCH https://api.lostchurn.com/v1/customers/{customer_id} \
-H "Authorization: Bearer {api_key}" \
-H "Content-Type: application/json" \
-d '{"locale": "fr"}'Under the hood, this calls the update_customer_locale reducer with the customer ID and a BCP 47 locale tag. The reducer validates the locale against the 10 supported codes and updates the customer record. If the locale is not supported, the request returns a validation error and the customer's existing locale is preserved.
Dunning Message Localization
All dunning channels — email, SMS, push notifications, WhatsApp, and voice outreach — support localized content.
How Translation Works
LostChurn provides two layers of localization for dunning messages:
Pre-Translated Templates
The default dunning templates ship with translations in all 10 locales. When you use a default template, LostChurn automatically selects the correct translation based on the customer's locale.
Default templates include:
- Payment failed notification
- Payment update reminder
- Final notice before cancellation
- Card expiration warning
- Payment recovered confirmation
- Subscription cancelled notification
Custom Template Translations
When you create custom templates, you can provide translations for each locale:
- Create your template in your default language
- Click Add Translation in the template editor
- Select the target locale
- Enter the translated content (subject line, body, and CTA)
- Repeat for each locale you want to support
If a custom template does not have a translation for a customer's locale, LostChurn falls back to the default locale version. Always provide translations for your most common customer locales.
Personalization Variables in Translations
Personalization variables like {{customer_name}}, {{amount}}, and {{merchant_name}} work identically across all locales. The variable syntax is language-neutral:
# English
Hi {{customer_name}}, your payment of {{amount}} failed.
# Spanish
Hola {{customer_name}}, tu pago de {{amount}} ha fallado.
# Japanese
{{customer_name}}様、{{amount}}のお支払いが失敗しました。
# Arabic
{{customer_name}} مرحبًا، فشلت عملية الدفع بقيمة {{amount}}.Currency and Number Formatting
LostChurn automatically formats currencies and numbers according to the customer's locale:
| Locale | Amount Display | Date Display |
|---|---|---|
en | $1,234.56 | March 13, 2026 |
de | 1.234,56 $ | 13. März 2026 |
ja | $1,234.56 | 2026年3月13日 |
pt-BR | R$ 1.234,56 | 13 de março de 2026 |
ar | ١٬٢٣٤٫٥٦ $ | ١٣ مارس ٢٠٢٦ |
RTL Support
Arabic (ar) is rendered with right-to-left (RTL) text direction across all channels:
- HTML emails use
dir="rtl"on the body element - Text alignment, padding, and margins are mirrored
- Logos and images remain in their standard position
- Links and buttons are right-aligned
SMS and WhatsApp
- Message content is sent in RTL-compatible Unicode
- Most modern phones render RTL automatically based on the character set
Dashboard and Self-Service Portal
- The dashboard UI mirrors its entire layout for RTL locales
- Navigation moves to the right side
- Tables read right-to-left
- Form fields align to the right
- Charts and graphs maintain their standard orientation (left-to-right axes)
RTL support applies automatically when a team member or customer has their locale set to Arabic. No additional configuration is needed.
Dashboard UI Language Switching
Team members can switch the dashboard language independently of the account's default locale:
- Click your avatar in the top-right corner
- Select Preferences
- Choose your preferred Language from the dropdown
- The dashboard immediately reloads in the selected language
Dashboard language is a per-user setting. Each team member can use the dashboard in a different language without affecting others.
Translated Dashboard Elements
The following dashboard elements are fully translated:
- Navigation menus and page titles
- Form labels, placeholders, and validation messages
- Table headers and empty states
- Tooltips and help text
- Notification messages and alerts
- Date and time displays
Elements That Remain in English
A small number of elements remain in English regardless of the dashboard language:
- Raw decline codes from payment processors (e.g.,
insufficient_funds) - API endpoint paths and parameter names
- Customer-provided data (names, email addresses)
- Code snippets in documentation
Stripe preferred_locales Integration
If you use Stripe as your payment processor, LostChurn reads the preferred_locales array from the Stripe Customer object to automatically set customer locales.
How It Works
- When a webhook is received, LostChurn reads the customer's
preferred_localesfrom the Stripe event payload - The first locale in the array that matches a supported LostChurn locale is used
- If no match is found, the account default locale is used
Setting preferred_locales in Stripe
You can set preferred_locales when creating or updating a customer in Stripe:
curl https://api.stripe.com/v1/customers/{customer_id} \
-u sk_live_xxx: \
-d "preferred_locales[0]"="fr" \
-d "preferred_locales[1]"="en"Or in your application code:
const customer = await stripe.customers.update('cus_xxx', {
preferred_locales: ['fr', 'en'],
});Locale Mapping
Stripe uses IETF language tags. LostChurn maps them to supported locales:
| Stripe Locale | LostChurn Locale |
|---|---|
en, en-US, en-GB | en |
es, es-ES, es-MX | es |
fr, fr-FR, fr-CA | fr |
de, de-DE, de-AT | de |
pt-BR | pt-BR |
ja | ja |
ko | ko |
zh-Hans, zh, zh-CN | zh-Hans |
hi | hi |
ar | ar |
LLM Cultural Context Awareness
When the LLM-powered message personalization generates or refines dunning messages, it considers cultural context beyond simple translation:
Cultural Adaptations
| Aspect | Example |
|---|---|
| Formality level | Japanese messages use honorific forms (keigo); German uses formal "Sie" |
| Urgency framing | Direct urgency in English ("Act now"); softer approach in Japanese ("We kindly ask...") |
| Payment context | References to local payment norms (e.g., bank transfer culture in Germany) |
| Date and time | Culturally appropriate date formats and business hour references |
| Color and imagery | Email template suggestions avoid culturally sensitive colors |
LLM cultural context is applied automatically when generating personalized messages. The model uses the customer's locale to select the appropriate cultural norms and communication style.
How It Works
- The LLM receives the customer's locale as part of the prompt context
- Cultural guidelines for that locale are injected from the prompt template library
- The model generates or refines the message with locale-appropriate tone, formality, and framing
- The output is validated against the locale's translation for consistency
What's Next
- What is LostChurn? — Return to the getting started overview
- Creating Campaigns — Build localized multi-step campaigns
- Email Campaigns — Configure email templates with locale-specific content