Localization & Translations
Produktly supports multi-language content across all features. You can translate your product tours, checklists, changelogs, roadmaps, announcements, smart tips, NPS widgets, micro-surveys, and feedback collectors into any number of languages.
Translations are delivered automatically based on targeting rules you configure, so each user sees content in the right language without any extra code. For public-facing features like roadmaps, visitors can choose their language directly from a language selector.
Supported features
Localization works with all Produktly features:
- Product Tours (step titles, descriptions, button texts)
- Checklists (title, description, step titles and descriptions, button texts)
- Changelogs (title, description, individual post titles and descriptions)
- Roadmaps (section names, item names and descriptions, feature request names and descriptions, tags) — see Roadmap Translations for details
- Announcements (title, content, action text)
- Smart Tips (title, content, action text)
- NPS Widgets (question text, thank you message, button texts)
- Micro-Surveys (title, questions, answer options)
- Feedback Collectors (title, description, button texts, placeholder texts)
Adding translations
To add translations to any feature, open its editor and look for the "Add Translation" button with the globe icon near the top of the editor. Click it to open the language picker.
You can search for languages by name or language code. After selecting a language, a new tab will appear in the language tab bar. Click on a language tab to start editing that translation.
The language tab bar
Once you have at least one translation language added, you will see a tab bar with:
- Default — your base/original content
- Language tabs — one tab per translation language you've added (e.g. "Spanish", "French")
- + button — add more languages
Click on a language tab to switch to editing that language's translation. When editing a translation, only the translatable text fields are shown (settings like targeting rules, styling, etc. are shared across all languages).
How translations work
- Empty fields fall back to default content. You don't have to translate every field. Any field you leave empty in a translation will automatically use the default content. This means you can start by translating just the most important fields (like titles) and add more later.
- Translations are saved automatically. Just like the default content, translations are saved as you type.
- Removing a language hides the language, but does not delete the translations. If you remove a language and later add it back, your previous translations will still be there.
Language targeting
After adding translation languages, a Language Targeting section appears in the editor. This is where you control which users see which language.
For each translation language, you can configure targeting rules that determine when that translation should be shown. These use the same targeting rules as the rest of Produktly. For example, you could:
- Show the Spanish translation when the user's browser language is Spanish
- Show the German translation when the user's location is Germany or Austria
- Show a specific translation based on a custom attribute like
localeorpreferredLanguage - Show a translation based on the URL pattern, e.g. URL contains
/es/orlang=es
Language resolution order
When a user views your feature, Produktly determines which language to show in this order:
- SDK language override — If you have set a language via the SDK (see below), that takes highest priority.
- Targeting rules — Each translation language's targeting rules are checked in order. The first language whose rules match is used.
- Default content — If no override is set and no rules match, the default content is shown.
Setting language via SDK
If you want to control the language programmatically instead of (or in addition to) targeting rules, you can set it through the setLanguage method:
window.Produktly.setLanguage("es"); // Show Spanish translations
Produktly will also match language prefixes. For example, if a user's override is es-MX and you have a translation for es, it will match.
Tips
- Start with the most important languages for your user base. You can always add more languages later.
- Use the preview to check how your translations look before publishing. When you have a language tab selected, the preview shows the translated version.
- Combine with language targeting rules for a fully automatic experience. Users will see content in their language without needing to do anything.
- Template values work in translations too. You can use
{{user.name}}and other template values in your translated content.