Skip to main content

Localization

Translate your story in StoryFlow Editor, review changed source text and let players choose a language in the finished game.

Set Up Languages

Click Localization in the top toolbar to open the dashboard, then set the language in which you write your story. Add each target language you want to provide. The dashboard gathers translatable text from your scripts, characters, User Interface files and Data Assets so you can work from one list.

Write and save your source content before translating it. StoryFlow Editor keeps text entries associated with their source so you can tell when a line changes and a translation needs another look.

Translate and Review

Select a target language to edit its translations. Filter the list to focus on unfinished work, search for a line and use duplicate-source suggestions when the same text appears elsewhere. The status of each entry helps you review it:

  • Untranslated: No translation has been entered yet.
  • Outdated: The source text has changed since the translation was written.
  • Done: A translation is present for the current source text.
  • Orphaned: The source entry is no longer present in the current project content.

Review warnings for missing placeholders and spacing differences before publishing. A warning invites a check; it does not automatically change the translation.

Work with CSV Files

Translation CSV

Export a target language to CSV when a translator prefers a spreadsheet. Import the completed file back into that language and review the preview before applying it. You can also export or import a folder of translation files for several languages. Keep the entry IDs intact so StoryFlow Editor can match the returned rows.

Source Text CSV

Source text CSV is a separate workflow for editing the original writing. Select Source in the language selector and choose Export CSV. Edit the edited column while keeping id and original intact. To clear a field, set its action to clear.

Choose Import CSV and review the Import Source Text preview. Save and close affected documents before applying the import. If the source has changed since export, export a fresh sheet and reapply your edits. If the applied result is wrong, use Restore Source Import. The dashboard also offers recovery after an interrupted import.

Choose the Right CSV

Use translation CSV to fill a target language. Use source text CSV only when you want to change the text the project was written in. A source edit can make existing translations outdated.

Preview Languages

In Play in Editor, use the language control in the Runtime Debugger to check each target language. A User Interface script can also use Set Language, Get Language, Get Languages and On Language Changed to build its own language menu. Those nodes belong to User Interface scripts rather than story script canvases.

Switching languages updates the current dialogue, its choices and authored interface text immediately. It keeps the current story position and interface state. A line still being revealed by the typewriter starts its reveal again in the new language; a completed line stays fully visible.

Text written by a running script remains as written. Use On Language Changed if your scripts need to replace that text after a switch. Identifiers and map keys are not translated. See UI Scripting for the language nodes.

Export Languages

HTML and Desktop App exports include your translations. You can enable a player-facing language picker or build one in your User Interface. The built-in picker is off until you enable it. The chosen language is a player setting and is stored separately from save slots.

A JSON export adds localization.json when the project has target languages. The Unity, Unreal Engine and Godot plugins can load it with the rest of the export.

Test More Than Dialogue

Preview character names, User Interface labels and Data Asset strings as well as dialogue. Also check the layout at the longest translated text you expect to ship.

Need Help?

Join our Discord community to ask questions, share your projects, report bugs, and get support from the team and other users.

Join Discord