Translation variants
Override selected messages for a brand, plan, customer, or experiment while keeping shared keys and Main fallback.
On this page
Main text and overrides
Main holds the default content. A named variant supplies different text for the keys and languages that need an override. Missing variant content falls back to Main for the same message, so you do not need to duplicate an entire catalog.
Use languages for language differences, plurals for quantity-dependent grammar, and variants for audience-specific wording. A variant can still contain different values in each project language.
One key, different audience messages
See how translation variants deliver different wording for the same key while Main provides shared text.
Watch on YouTubeCreate and review a variant
- Create a variant option in the project settings with a name that identifies its audience or use case.
- Edit the variant values for the keys and languages that should differ from Main.
- Review overridden messages together with the Main values that provide fallback.
- Publish the reviewed keys and verify the selected variant in an application.
Use the variant identifier expected by your installed SDK. Keep the app configuration aligned with the project option rather than assuming a display label is interchangeable with an identifier.
Let the application select the audience
Supported SDKs accept variant selection during setup and expose runtime variant controls. Follow the version-specific package reference for the selection API and persistence behavior. Switch at the point where the app knows the user brand, plan, or experiment assignment.
Test fallback and switching
- Check the default Main experience without a selected override.
- Check a key with variant content and another key that intentionally falls back to Main.
- Repeat in the languages your app exposes, including a locale with missing variant text.
- Switch variants while the app is open and confirm that existing UI refreshes correctly.
React
Add OTA delivery to an i18next app while keeping native resources, translation hooks, and language switching.
Flutter
Keep generated AppLocalizations calls and add published translation values, runtime languages, and revision-driven rebuilds.
Publishing and OTA delivery
Release reviewed translation snapshots and understand when installed applications receive them.