Languages
Told lets you present surveys and product tours in multiple languages. The system automatically detects the user's language and displays the appropriate translation.
How language detection works
- The SDK detects the user's browser language (web) or device language (mobile) — e.g., a browser set to
fr-FRis detected asfr - If the survey or product tour has a translation matching that language → that translation is shown
- If no match is found → the default language is shown
Example: Your survey has English (default), Spanish, and French translations.
- A user with a Spanish browser sees the survey in Spanish
- A user with a German browser sees it in English (the default, since there's no German translation)
This applies to both surveys and product tours.
Language priority
The SDK resolves the user's language in this order (first match wins):
| Priority | Source | How it's set |
|---|---|---|
| 1 | Previously stored language | Saved in localStorage from a prior identify or init call |
| 2 | language option in init | told('init', sourceID, { language: 'es' }) |
| 3 | language field in identify | told('identify', { language: 'es' }) |
| 4 | Browser language | Automatically detected from navigator.language |
| 5 | Fallback | en |
Once set, the language is persisted in the browser's localStorage. It will be used for all future sessions until changed or reset.
Setting the user's language
At initialization
Pass the language option when initializing the SDK:
told('init', 'YOUR_SOURCE_ID', { language: 'fr' });
Via identify
Pass language as a field in identify. This updates the user's language and persists it:
told('identify', { language: 'es' });
You can combine it with other user data:
told('identify', {
email: '[email protected]',
userId: '123',
language: 'de',
});
On mobile
Android:
Told.identify(mapOf("language" to "es"))
iOS:
Told.identify(properties: ["language": "es"])
For link surveys
Add ?lang= to the survey URL:
https://survey.told.club/s/YOUR_SURVEY_ID?lang=es
Setting the language via init or identify overrides the automatic browser detection. The chosen language is saved and reused across sessions until the user is reset (told('reset')).
Setting up translations
- Open your survey or product tour in the editor
- Go to the language settings
- Add languages you want to support
- Translate each question, description, and choice into the added languages
- Set the default language (used as fallback when the user's language isn't available)
Navigation buttons ("Next", "Submit", etc.) are automatically translated by Told — you don't need to translate them manually.
AI translation
Told can automatically translate your survey using AI:
- Write your survey in your default language
- Add the target language
- Click Translate with AI
- Review and edit the generated translations
Always review AI translations before publishing, especially for domain-specific or nuanced content.