Skip to main content

Translate text variables per language

Updated Nov 1, 2026

Translate text variables per language

Overview​

A text variable now carries one value per language, so a demo translated into German, French, and Japanese shows the right word for the right viewer — without creating a separate demo for each market.

Walnut already translates everything your product captured on screen (see Translate captured screen text across languages) and your guide steps (see Translate guides). Variable translations complete the picture: dynamic text you inserted — the prospect's company name, their role title, the industry label — can now be set per language too.


Why this matters​

A variable like {{industry}} with the English value "Healthcare" used to render the same way for every viewer, even on a German demo. With per-language values you can set:

  • English: Healthcare
  • German: Gesundheitswesen
  • French: Santé
  • Japanese: ヘルスケア

Walnut picks the value that matches the viewer's current language, and falls back to the source value whenever a translation is missing.


Add a translation to a text variable​

  1. Open the template in the editor.
  2. Open the Variables panel from the sidebar and click the variable you want to translate.
  3. In the variable's details panel, you'll see one row per language the demo already has. The source language row shows the base value you entered when you created the variable.
  4. Type a translation into each language row. Walnut saves per-language values as you type.

The language list is the one you added to the demo in the language switcher. Add a new language to the demo and that language shows up as another row to fill in.

Auto-translate​

Click Translate automatically at the top of the variable panel to have Walnut generate a translation for every empty language row using the same engine the rest of your demo uses. Review the suggestions and edit any row that needs a different wording — the generated value is a starting point, not a lock.


How viewers see translated variables​

  • When a viewer opens the demo in a given language, Walnut resolves every text variable to that language's value and renders it in-place — the same way captured screen text and guide text are swapped per language.
  • A variable with no value for the current language falls back to the source value, just like an untranslated screen string does. No empty spot, no blank chip.
  • Image variables are not translated — they stay the same across languages. Only text variables carry per-language values.

Bulk translate alongside screens and guides​

Variable translations ride the same language list as the rest of the demo:

  • Add a language to the demo once from the language switcher — Walnut queues translation for screens, guides and variables together.
  • The language-menu "translate" count reports progress across all three layers, so a demo isn't "fully translated" until variables are translated too.
  • The CSV export includes variable rows alongside screen and guide rows, so a translator can edit everything in one spreadsheet and re-import.

Good to know​

  • Changing a variable's source value does not overwrite your translations. If you rename "Healthcare" to "Health & Life Sciences" in the source language, the German, French and Japanese rows keep their existing values. If you want them re-translated, clear the rows and run Translate automatically again.
  • Presets fill variables, then translation renders them. When a preset picks a variable value for a given account, Walnut still swaps that value's translation to match the viewer's language.
  • Variables inside guide text are translated through this surface. A guide step that mentions {{industry}} reads the per-language value picked here — you don't have to re-translate the inline variable inside the guide step.

FAQs​

What if I don't fill in every language?​

Walnut falls back to the source-language value for any row you leave blank. The demo still plays end-to-end; the viewer simply sees the source value for that one variable.

Can I translate image variables too?​

No. Only text variables carry per-language values. Image variables use the same image across every language.

Does this work with dynamic date variables?​

Dynamic dates render in the viewer's locale automatically (date format, month names). You don't set per-language values for them.

Can I re-translate just one variable without touching the rest?​

Yes. Clearing one language row and clicking Translate automatically regenerates only the empty rows — translations you've already written are left alone.


Was this helpful?