$19.99 Personalv1.1.0Live on Fab ↗

Every language, shipped right.

Localization breaks quietly: a lost {placeholder}, a source text that changed while the old translation stayed, a button too small for German, a font with no Japanese, a widget nobody marked as localizable, a gather that fails on a missing engine manifest. Dragoman finds all of it in every language, repairs the gather setup in one click, gives translators packages with context in the format they use and imports their work only after you have seen every change.

Engine
UE 5.0 – 5.8
Works with
Localization Dashboard · CSV · Excel · PO · XLIFF
Type
C++ editor plugin, source included
License
$19.99 Personal · $49.99 Professional

Interactive demo with the texts of the plugin's showcase project. Work through the German Review queue, click Gather (its setup needs a repair first), pick French and try Tools › Machine translate, then Translators › Import translations.

Panel width
What players would have seen

The bugs the Localization Dashboard doesn’t show.

Six findings from the plugin's own test project. Each one compiles, packages and ships without a warning, until a player sees it.

A lost placeholder

Source
Welcome back, {PlayerName}!
Translation (de)
Willkommen!

Error Placeholder mismatch Missing {PlayerName}.

A broken rich text tag

Source
Press <Key>E</> to open the door.
Translation (de)
Drücke E, um die Tür zu öffnen.

Error Rich text tag mismatch Missing tags </> <Key>.

An outdated translation

Source
Save your progress before you quit the game.
Translation (de)
Speichern vor dem Beenden.

Warning Stale translation Translated for: "Save before you quit."

Text that does not fit

Source
Quit to desktop
Translation (de)
Zurück zum Desktop und das Spiel beenden

Warning Too long 40 characters, the note allows 18.

Boxes instead of letters

Source
Main Menu
Translation (ja)
メインメニュー ⚔

Error Missing glyphs The fonts cannot draw: ⚔ (U+2694).

Text nobody can translate

Source
Press any key to start
Asset
WBP_MainMenu, "Localize" off

Warning Hardcoded text This text is not localizable (culture invariant), so it is never translated.

The round trip

From gathered text to compiled translations.

Built on Unreal's own pipeline: everything is written to the standard manifest, archive and locres files, so the Localization Dashboard, your PO tools and your packaged game keep working as before.

  1. 1Gather

    Unreal collects every text of the target, from C++, widgets, Blueprints and tables, in its own process with a live log. A broken setup is repaired in one click.

  2. 2Check

    24 checks for every language: coverage, broken translations, hardcoded text and setup problems.

  3. 3Send

    One CSV, Excel, PO or XLIFF file per language, with context, notes, maximum lengths, glossary terms and memory suggestions.

  4. 4Review

    Translators’ files come back through a dialog that shows every new and changed text; broken rows are blocked. Machine translations wait in a review queue, riskiest first.

  5. 5Compile

    Inside the editor, without a separate process. The new text is in the editor and the game right away.

The real thing

One panel next to the viewport.

ta Dragoman Review page: German machine translations sorted by risk, with the review verdicts, the main reasons and the details of Quit
Ten German machine translations, riskiest first: Quit failed the review as too literal and is right at its length limit.
Features

Everything between a gathered text and a shipped language.

One view of every text

A card per language with its coverage, and a table with key, source, translation and status. Filter by what is missing, changed, machine-translated or broken, and click through to the asset a text comes from. Docked narrow next to the viewport, the panel keeps it all in one column.

Review queue

Machine translations sorted by risk, with the reasons. An optional review pass adds a verdict, a score, the issue and a better translation. Accept the low-risk ones in one go.

Setup repair in one click

A missing engine manifest, a dependency on a deleted target, no source folders, languages missing from the package: found, explained and fixed when you ask.

Changed source texts

Translations made for an older source, next to the text they were made for. Keep them with one click, or update them.

Packages with context

CSV, an Excel workbook, PO, or XLIFF 1.2 / 2.0 for translation tools, with placeholders and tags as protected inline codes. Every text with where it is used, a note, a maximum length and glossary terms.

Reviewed imports

See every new and changed translation before anything is written. Rows with broken placeholders, tags, patterns or inline codes are blocked; texts the tool marks for review go into the review queue.

Glossary and memory

Plain project files you commit. The memory keeps every translation it has seen, suggests translations and fills repeated texts.

Fonts that can draw it

Dragoman reads your UI fonts' own character maps, fallbacks included, and finds the characters that would show as boxes.

Machine translation with context

DeepL or the AI service of your choice, in the cloud or running locally, with your own key. Each missing text goes with its location, note, length limit and the texts around it, plus your project brief and style guide.

Gather in its own window

Unreal's Gather Text in its own process, with a progress bar per step, the live log with errors and warnings marked, hints for known errors and saved logs.

CI and Python

A commandlet with exit codes and HTML and JSON reports that can also repair the setup, gather, machine translate and review, Data Validation on save, and a Python and Blueprint API for your pipeline.

Pseudo-localization

Find the problems before translators start.

One click adds a pseudo language: every text accented, about 35% longer and in brackets, with placeholders, plural blocks and tags kept. Play in it, and cut-off, glued-together and hardcoded text stands out at once.

Pseudo-localization docs
en-XA[Ŵéļçöɱé ƀåçķ, {PlayerName}! ļöŕéɱ]

The same algorithm as the plugin: accents on letters, padding words, brackets; {arguments} and <tags> stay as they are.

Checks

24 checks, in three groups.

In the panel, in the commandlet and the reports; the asset checks also run in Data Validation when you save. Change a severity or turn a rule off in Project Settings. The gather setup problems have their own window, where one click repairs them.

Translation

  • MissingMissing translationWarning
  • StaleTranslated for a source that changed sinceWarning
  • MachineMachine translation (or a text a file marks for review) not reviewed yetInfo
  • IdenticalTranslation equals the sourceInfo
  • PlaceholderFormat arguments like {PlayerName} lost or addedError
  • PatternUnreal’s format validation fails, e.g. plural forms the language does not haveError
  • RichTagRich text tags like <Bold>…</> lost, added or brokenError
  • WhitespaceSpaces or line breaks at the start or end differ from the sourceWarning
  • LengthLonger than the note’s maximum, or much longer than the sourceWarning
  • GlyphCharacters none of your UI fonts can drawError
  • GlossaryA glossary term translated the wrong wayWarning
  • DoNotTranslateA name that must stay as it is was changedWarning

Assets

  • HardcodedTextText in widgets, Blueprints and tables that cannot be translatedWarning
  • StringToTextA typed-in string converted with To TextWarning
  • BrokenStringTableRefReference to a missing string table or keyError
  • UnusedStringTableEntryString table entry no checked asset usesInfo
  • NotInManifestTexts new or changed since the last gatherInfo
  • OutsideGatherAssets with text the gather never seesWarning

Setup

  • NoTargetThe localization target does not existError
  • NotGatheredThe target has never been gatheredWarning
  • NoForeignCultureOnly the native language is set upWarning
  • EngineManifestMissingA target dependency has no manifest (the Engine target in some engine installs): Gather failsError
  • CompileNeededTranslations changed after the last compileInfo
  • ConflictOne key with different source textsWarning

Full checks reference

Live sample

A report the whole team can read.

The real HTML report Dragoman wrote for its showcase project: coverage per language, every finding and every text in every language. Filter it, and switch your system to dark mode.

Saved/Dragoman/Reports/Dragoman_Game_20261024_070827.htmlOpen in a new tab
Automate

Broken translations fail the build.

Run the commandlet on every build: it repairs the gather setup and gathers first, broken placeholders and missing glyphs fail it, texts still waiting for translators don't. When a translator's file comes back, import it from a script.

Command line docs
check_localization.bat
UnrealEditor-Cmd.exe MyGame.uproject -run=TADragoman ^
  -RepairGather -Gather -IgnoreMissing -FailOn=Error

rem A translator's file came back: preview it, then import and compile.
UnrealEditor-Cmd.exe MyGame.uproject -run=TADragoman ^
  -Import=Translations/Game_ja.xlf -DryRun
Get Dragoman

$19.99 Personal. $49.99 Professional.

Sold on Fab under the Fab Standard License. Both licenses get the same plugin: every feature and the full C++ source, for Unreal Engine 5.0 – 5.8.

Dragoman is available on Fab now.

Personal$19.99

For individuals and companies with up to $100,000 in gross revenue in the last 12 months.

Professional$49.99

For companies with more than $100,000 in gross revenue in the last 12 months.

Get Dragoman on Fab

Need several seats or a studio agreement? Contact us.

FAQ

Questions, answered.

Still curious? Read the full FAQ or contact us.

How much does Dragoman cost?

The Fab Personal license is $19.99: individuals and companies with up to $100,000 in gross revenue in the last 12 months. Above that, the Professional license is $49.99. Both get the same plugin with every feature and the full C++ source.

Does it replace the Localization Dashboard?

No, it works with it. Your targets, gather settings and files stay where they are; Dragoman reads and writes the same manifest, archive and locres files, runs Gather and Compile for you, and repairs the setup problems that make Gather fail.

Do I need a translation service or an account?

No. Packages are plain CSV, Excel, PO or XLIFF files you can send to anyone or load into your translation tool. Machine translation is optional and uses your own DeepL or AI service key, or a model running on your own PC.

Which files can I import?

The files of Dragoman’s packages, any CSV or Excel sheet with Key and Translation columns, PO files exported by the Localization Dashboard or by tools like Poedit and Crowdin, and XLIFF 1.2 or 2.0 files from translation tools.

How does the review queue decide what is risky?

Each machine translation gets points for its findings (a broken check counts most), a failed or doubtful review, plural forms, a length close to the maximum and short texts without a note. The riskiest come first, with the reasons. You decide: nothing is accepted until you accept it, one by one or the low-risk ones in one go.

How does the font check work?

Dragoman reads the character maps of the fonts you list (Unreal’s default UI font by default), including composite fonts with their fallback and sub-fonts, and reports the characters of a translation none of them can draw.

Is my text sent anywhere?

Only if you use machine translation or the review pass. Then the missing source texts (or the machine translations to review) go to the service you configured, with their context: location, note, maximum length, nearby texts, your project brief, style guide and the glossary terms they use. With a model on your own PC nothing leaves the computer. Nothing goes to tridiART.

Does it work on a build server?

Yes. The TADragoman commandlet runs the same checks, writes HTML and JSON reports and returns exit codes. It can also repair the setup, gather, export, import, pseudo-localize, compile, machine translate and review.

Which engine versions are supported?

Unreal Engine 5.0 to 5.8, in the editor on Win64, Mac and Linux. Nothing of Dragoman is packaged into your game.