Localisation is currently API-only and in closed beta.
It will become available in the Pass Template Builder UI later.
Why Localisation Matters
Localisation makes sure that the fields on your pass (including labels and values) appear in the preferred language of your usersโ devices.- Improves user experience
- Builds trust and professionalism
- Reduces confusion for international customers
๐ฑ How Devices Decide Which Language to Show
Both Apple Wallet and Google Wallet automatically match the device language with the localisations youโve defined:- The device checks its system language settings.
- It looks for a matching localisation in your pass.
- If a match exists โ that language version of the pass is shown.
โ What if a device uses an unsupported language?
Apple Wallet and Google Wallet handle fallbacks differently.Platform | How the language is chosen when thereโs no exact match |
---|---|
Apple Wallet | Tries device preferred languages โ if none match, searches for English localisation โ if not present, defaults to first localisation alphabetically |
Google Wallet | Tries device locale โ if none match, falls back to the template defaultLanguage |
- Default language set on the template: Icelandic (
is
) - Localisations present:
fr
,de
,en
- Device language:
it
(Italian)
To make behaviour consistent across Apple and Google and ensure a safe and predictable fallback we recommend to always set the default language to English.
๐ Supported Locale Options
Both Apple and Google use BCP 47 language tags to define locales. These tags combine a language code (e.g.en
for English, fr
for French) with optional region or script codes (e.g. en-GB
for British English, pt-BR
for Brazilian Portuguese).
You can look up the language you need in the Wikipedia list of IETF language tags and use the corresponding code when adding localisations to your pass.
PassEntry supports a wide range of locales used by Apple and Google. You can include multiple localisations per pass template.
Hereโs the current list of supported locales:
๐ Example: Localised Supermarket Membership Pass
Letโs walk through a simple case study. Imagine a supermarket in France that issues a digital loyalty card. They want the pass to appear in English by default for tourists, while also providing a French translation for their local customers. Below is a minimal pass template definition with localisation applied:Notes
defaultLanguage
: Always set toen
for a consistent fallback on both Apple and Google Wallet.- Localisation scope: Added for labels and static default values where appropriate. Avoid defaults for dynamic customer data (e.g. name, email, member ID).
- How
defaultLanguage
works:- If
defaultLanguage
is set toen
, then the parent-level"label": "Tier", "defaultValue": "Silver"
are already in English. - โ Do not repeat English under the
localisation
object โ itโs redundant. - โ
Only add translations for other languages (e.g.
fr
,de
).
- If
- Changing the default language later:
If you decide to make French your default language, you must:
- Update the parent-level label and default value to French.
- Remove
fr
from thelocalisation
object. - (Optionally) add
en
as a localisation if you still want English support.
Example
Default language = EnglishTo test localisation on your phone, install your pass, change the language preferences in your device settings and then return to the Wallet app.