Translations
Translate your loyalty widget, loyalty page, and wallet passes into 38 languages — or let Joy detect each customer's language automatically.
Editing English content is available on All plans
Changing the default language and editing content in that language require Essential and above
Detect Language (auto-detect by IP or browser) is available on Advanced and Ultimate
Overview
Joy's Translations feature lets you display your loyalty content in your customers' preferred language — either by setting a fixed default language, or by letting Joy detect it automatically.
Joy translates everywhere your customers see loyalty content:
Loyalty widget (popup)
✅
Loyalty page (embedded)
✅
Account page (loyalty hub)
✅
Checkout page (Shopify checkout extensions)
✅
Apple Wallet & Google Wallet passes
✅
Many apps on the Shopify market are unable to translate their checkout UI extensions or customer account UI — leaving customers on international stores stuck reading English at the most critical moments. Joy translates across all surfaces, including checkout and account pages.
All 38 supported languages can be fully customized — you can edit every label, message, and button text to match your brand voice.
Supported languages
Joy supports 38 languages out of the box:
Arabic
Czech
Danish
Dutch
English
Estonian
Finnish
French
German
Greek
Hebrew
Hindi
Croatian
Hungarian
Indonesian
Irish
Italian
Japanese
Korean
Lithuanian
Luxembourgish
Malay
Norwegian (Bokmål)
Polish
Portuguese
Romanian
Russian
Slovak
Slovenian
Spanish
Swedish
Thai
Turkish
Ukrainian
Urdu
Vietnamese
Chinese (Simplified)
Chinese (Traditional)
How it works
Joy's translation system has two layers:
Default Language — the language shown to all visitors by default. On All plans this is English; on Essential and above you can change it to any supported language.
Detected Language — when enabled (Advanced+), Joy detects each customer's language automatically and switches all loyalty surfaces to match. Three methods are available: Shopify language selector (recommended), Browser Language, or Customer IP.
If a customer's language is not in your Detected Language list, the widget always falls back to your Default Language.
Set up the default language
Go to Joy Loyalty > Translations
Under Default Language, select the language you want to use as the base for your widget
Save your changes — the widget will now display in that language for all customers
Set up detected language
Detected Language requires Advanced or Ultimate plan.
Go to Joy Loyalty > Translations
Under Detected Language, choose how to detect each customer's language:
Shopify language selector ⭐ — syncs with whichever language the customer selects on your Shopify storefront. Works without requiring the customer to be logged in. Recommended for multi-language stores.
Browser Language — detects language from the customer's browser settings
Customer's IP — detects language based on geographic location
Click Add Detected Language and select all the languages you want to support
Save — Joy will now automatically display the widget in each customer's language when they're logged in
Translate with Shopify language selector (recommended)
This is the most seamless option for multi-language Shopify stores. Joy syncs with whichever language the customer has selected on your storefront — no customer login required, and it works across the widget, loyalty page, account page, and checkout extensions all at once.
Combine the Shopify language selector with Joy translation settings for a consistent translated experience across your entire store.
Edit widget content
You can customise every piece of text in the widget — button labels, messages, point names, and more.
Go to Joy Loyalty > Translations, then select Widget Design
Choose the language you want to edit from the language tabs
Navigate through the tabs (Earn, Redeem, VIP, etc.) and update each label as needed
Click Save to apply your changes
Keep variables in English. When editing translations, always preserve variable placeholders in their original English format: {{variable_name}}. Only translate the surrounding text.
✅ Correct (Spanish): Página {{page_number}}
❌ Incorrect: Página {{número_de_página}} — this will display as raw text, not the actual value.
Wallet pass translations
If you use Apple Wallet or Google Wallet passes, the pass content (tier name, points label, store name) can also be translated. Wallet pass translations follow the same language settings as your widget — when a customer's language is detected, their pass will display in that language automatically.
FAQ
Q: Can I translate email notifications as well? A: Not yet — email notification translation is not currently supported. The Translations feature covers the loyalty widget, loyalty page, account page, checkout extensions, and wallet passes.
Q: Do I need to translate every label manually when adding a new language? A: No. When you add a new detected language, Joy automatically translates all widget labels using Google Translate. You can then review and refine any labels you want to customise — but the full translation is ready to use immediately.
Q: How many detected languages can I add? A: Up to 5 additional languages by default.
Q: Does translated content affect my Shopify store's SEO? A: The Joy widget is loaded client-side and does not affect Shopify's storefront HTML for SEO purposes. For SEO-relevant multi-language content, use Shopify's native translation tools.
Q: Can I rename the word "points" to something custom in each language? A: Yes. Go to Translations, select a language, and update the "Points" label in the translation editor. Each language can have a different label — for example "Stars" in English and "Étoiles" in French.
Q: Is the Detect Language feature available on all plans? A: No — Detect Language requires Advanced or Ultimate. On Essential, you can set a fixed default language other than English but cannot enable automatic language detection.
Last updated
Was this helpful?