Intuify

Intuify

Documentation

Builder9 min read

Multi-Language Surveys

Translate surveys into multiple languages, manage translations, and control the respondent language experience.

On this page (26 sections)

Create surveys in multiple languages so respondents can take them in their preferred language. Translation management, respondent language selection, and automatic fallback are all built in.


How it works#

Intuify supports a Qualtrics-style translation workflow:

  1. Set a base language for your survey (the language you author content in)
  2. Add translation languages (Spanish, French, German, etc.)
  3. Translate content using the side-by-side editor or Auto-Translate with AI
  4. Publish — respondents see a language picker and can switch languages

Supported languages#

18 languages are supported out of the box, including RTL (right-to-left) languages:

LanguageCodeRTL
EnglishenNo
SpanishesNo
FrenchfrNo
GermandeNo
PortugueseptNo
Portuguese (Brazil)pt-BRNo
ItalianitNo
DutchnlNo
ArabicarYes
HebrewheYes
PersianfaYes
UrduurYes
JapanesejaNo
Chinese (Simplified)zhNo
Chinese (Traditional)zh-TWNo
KoreankoNo
RussianruNo
ThaithNo

Translations tab#

The Translations tab in the builder is where all language management happens. It's always visible in the toolbar (between Panels and Settings).

Overview page#

When you open the Translations tab, you see:

  • Left sidebar — list of all languages, with the base language marked. Click "+" to add new languages.
  • Right panel — overview table showing each translation language with:
    • Language name and code
    • Progress bar showing translation completeness (e.g., "77 of 190 strings, 46%")
    • Edit button to open the side-by-side editor
  • Base language selector — change the base language at any time

Two-tab translation editor#

Click a language in the sidebar (or click "Edit" in the overview) to open the editor. The editor is organized into two tabs:

Content tab#

Translate all survey content:

  • Left column — base language text (read-only)
  • Right column — translation input fields (editable)
  • Question text, descriptions, answer options, matrix rows/columns, scale labels, section titles
  • Rich text support (bold, italic, links) for question text; piped text insertion for all fields
  • Carry-forward options shown as read-only with a hint to edit at the source question
  • Collapsible sections grouped by survey section with per-section progress

Messages & Alerts tab#

Translate system messages, validation alerts, and survey messages:

  • System Messages — collapsible section with all 39 respondent-facing strings (navigation buttons, status screens, progress text, validation alerts), pre-filled with locale-specific built-in defaults. Customize any message per language with a reset button to revert to defaults.
  • Completion message — the "Thank you" message shown when the survey is completed
  • Termination & quota messages — messages shown when a respondent is screened out or a quota is full
  • Per-question validation alerts — each question's registered validation messages (e.g., "Required", "Min Selections", "Email format") are shown as editable rows. Override any validation message per language per question.

Both tabs share the same layout with:

  • Search — 300ms debounced search across base text, translated text, and field labels
  • Filter — "All items", "Incomplete only", or "Stale translations"
  • Progress indicator — per-tab count showing translated/total with percentage
  • Staleness detection — orange badge when base text has changed since translation was written

What gets translated#

Automatic translations (chrome strings)#

These translate automatically based on the survey's active language — no manual work needed:

  • Navigation buttons: Next, Back, Submit, Start Survey, Continue
  • Resume/restart: Take Again, Resume, Start Fresh, unsaved progress message
  • Status screens: Survey Closed, Survey Paused, Password Protected, Identify Yourself
  • Progress: "Question 1 of 10", "50% complete"
  • Footer: "Powered by Intuify Survey Builder"
  • Validation messages: "This question is required", "Please select at least {n}", "Please enter a valid email", and 10 more

All 18 supported languages have built-in translations for all chrome strings and validation messages.

Survey content (manual or AI translation)#

These require the survey author to provide translations via the editor or Auto-Translate:

  • Question text, descriptions, and helper text
  • Answer option labels
  • Matrix row and column labels
  • Scale labels (min/max)
  • Section titles and descriptions

Per-locale custom label overrides#

System messages can be customized per language in the Messages & Alerts tab. For example, set the "Next" button to "Siguiente" in Spanish and "Suivant" in French independently. Each field is pre-filled with the locale-specific built-in default and can be reset with one click.

Legacy surveys with global overrides (e.g., { next: "Continue" }) continue to work — per-locale overrides take priority when present.

Per-question validation alert overrides#

Each question's applicable validation messages can be customized per language in the Messages & Alerts tab. For example, override "This question is required" with a custom message for a specific question in a specific language. The resolution chain is:

  1. Per-question alert override (from Messages & Alerts tab)
  2. Custom required message (from question's validation settings)
  3. System custom label (from System Messages section)
  4. Built-in locale translation
  5. English fallback

Respondent experience#

Choosing the language#

The respondent's display language is decided by the survey itself — there is no permanent language switcher in the survey chrome. You can drive the language two ways:

  1. From the URL — link to the survey with ?lang=<code> (e.g. ?lang=es) to start the respondent in that language. The code must be configured under Translations.
  2. From an answer (recommended for in-survey switching) — add a language-selection question near the start of the survey, then place a Set Language flow block after it set to From question answer. See Logic, Flow & ConditionsSet language for the step-by-step setup, including the builder's AI-powered answer autofill.

Once the survey is completed or terminated, the per-respondent language is cleared so the next visitor starts from the URL or the base language again.

Language detection#

The survey resolves the active language using this priority:

  1. Set Language flow block — a set_language block earlier in the survey overrides everything else for all subsequent pages.
  2. URL parameter?lang=es in the survey URL forces Spanish on the first page (when the code is configured).
  3. Base language — falls back to the survey's base language.

Fallback behavior#

If a translation is incomplete (some fields not translated), the survey automatically falls back to the base language text for untranslated fields. Respondents always see complete content — no blank fields.

RTL support#

When a right-to-left language (Arabic, Hebrew, Persian, Urdu) is active, the survey container automatically sets dir="rtl" and lang attributes for proper text direction.


Rich text and piped text in translations#

Rich text formatting#

The translation editor supports the same rich text formatting as the main question editor:

  • Question text fields have a full toolbar: Rich Editor (bold, italic, links), Piped Text, and HTML view toggle
  • Answer option fields have a compact toolbar with a Piped Text button
  • Scale labels (Min/Max Label) use plain text input

Base language text in the left column renders formatted HTML properly, so you can see exactly how your source text looks while translating.

Piped text in translations#

You can insert piped text tokens (e.g., ${q://Q1/SelectedValue}) into your translation fields using the Piped Text button. When a respondent takes the survey in a translated language, piped text resolves to the translated answer value they selected. For example, if a Spanish respondent selects "Rojo" for a color question, a piped reference to that answer in a later question will show "Rojo" (not the English label).

Filtering incomplete items#

Use the filter dropdown at the top of the translation editor to switch between:

  • All Items — shows every question
  • Incomplete items only — shows only questions that still need translations

This helps you quickly find and complete missing translations without scrolling through fully translated content.

Carry-forward translations#

If a question uses carry-forward (pulling answer options from a previous question), the carried-forward options automatically use the translated text from the source question. In the translation editor, carry-forward options appear as read-only with a hint like "(from Q1 — edit there)" — translate the options at the source question and they flow through automatically. Carry-forward options do not count toward the translation completeness percentage.


Previewing translations#

Before publishing, you can preview how your survey looks in any language.

Preview page#

Open the full preview page (Preview button in the builder toolbar). When your survey has translation languages, a language dropdown appears in the top-right of the preview toolbar — alongside the Restart and Exit buttons.

Select a language to see:

  • Translated chrome strings (Start Survey, Next, Back, Submit, footer)
  • Translated survey content (questions, answer options)
  • RTL direction for Arabic, Hebrew, Persian, Urdu
  • Custom label overrides

The preview language selector is independent of the published survey — it's a preview-only tool for verifying translations before going live.


Distribution with languages#

When sharing survey links, you can append ?lang= to pre-select a language:

https://yoursite.com/s/SV_abc123?lang=es    # Spanish
https://yoursite.com/s/SV_abc123?lang=fr    # French
https://yoursite.com/s/SV_abc123?lang=de    # German

This is useful for email distributions where you know the recipient's language.

To let respondents pick their language inside the survey, add a language-selection question plus a Set Language flow block. See Logic, Flow & ConditionsSet language for setup and the builder's AI-driven answer autofill.


Technical details#

  • Translations are stored in a separate translations map inside survey_data.settings.translations, keyed by translatable string ID:
    json
    {
      "settings": {
        "translations": {
          "sec-S1-title": { "es": "Sobre ti", "fr": "À propos de vous" },
          "q-Q1-text": { "es": "¿Cómo se enteró?", "fr": "Comment avez-vous entendu?" },
          "q-Q1-a-A1": { "es": "Redes sociales" }
        }
      }
    }
    
  • Text fields (question text, answer labels, etc.) always remain plain strings — translations are resolved at render time by looking up the string ID in the map
  • No database migration needed — the translations map lives inside the existing survey_data JSONB
  • Locale resolution happens in the question pipeline before piped text processing, so piped text tokens see the localized strings
  • The respondent's chosen language is recorded in the session/response record for analytics segmentation

AI-powered translation#

Speed up your translation workflow with built-in AI translation:

  1. Go to the Translations tab and click Auto-Translate (available in both the overview table and the editor header)
  2. Choose a scope:
    • All at once — translates all untranslated strings in one batch
    • Section by section — translates one section at a time, completing each before moving on
  3. Click Start Translation — fields update progressively as each translation completes
  4. Review and edit translations as needed

Important: AI translations should always be reviewed by a qualified translator before publishing.

How it works behind the scenes#

  • Translations stream in real-time via Server-Sent Events (SSE), so you see each field populate as it's translated
  • The Auto-Translate button shows live progress ("Translating 5/12...") during active translation
  • Carry-forward strings are automatically excluded (they inherit translations from their source question)
  • If a network error occurs, the system retries once automatically
  • Supports OpenAI and Google Gemini as translation providers (configured by your administrator)

Was this page helpful?