Skip to content
Tuxedo CatSTUDIO
Menu

Dialogue Director localization readiness backend

Review draft. This source page has not completed website editorial and release-specific verification.

Unreal Engine and the host game project own Localization Targets, cultures, source gathering, manifest/archive data, PO import/export, LocRes compilation, and runtime culture lookup. Dialogue Director does not create target configuration and does not parse PO or archive files itself.

The Editor readiness model is read-only. It does not repair developer text, change active culture, run Gather/Export/Import/Compile, or mutate target settings. Dialogue content, translator surfaces, format validation, host target configuration, archive availability, and translation validation have structured diagnostic scopes. A host-target setup problem cannot mark every translator surface as a content error. The explicit Developer Text Repair operation remains separate from text identity recovery.

The only translator-facing surfaces are Dialogue Line text, Choice text, Interjection text, and nonempty LineDelivery WrittenText/CaptionText overrides. Empty delivery overrides are omitted; fallback behavior does not create a duplicate localization entry. Choice labels, action/event labels, branch/condition names, participant RoleName, and generated summaries are developer-only and are audited by the Step 1 culture-invariant policy instead of being added to translator surfaces.

Each surface carries its owning Definition path, semantic surface kind, TextId, owning TextIdentityGuid, source string, ordered argument declarations, and deterministic namespace/key. Runtime identity helpers provide the key contract. Definition entries use namespace DialogueDirector and key Text.<TextIdentityGuid>.<TextId>. Delivery Written and Caption keys append .Delivery.<TextId>.Written and .Delivery.<TextId>.Caption beneath that Definition identity.

The backend enumerates the host project’s game Localization Targets through Unreal’s Localization settings API. A single target can be selected implicitly; multiple targets require an explicit target name. With no targets, Dialogue-local checks remain available and readiness reports NoLocalizationTarget.

Target native/configured cultures, editor-only gathering, include/exclude patterns, and public manifest/archive paths are exposed as metadata. Include/exclude patterns are not interpreted by Dialogue Director: package membership is reported as unproven unless Unreal exposes a direct supported membership result. The host project remains responsible for target configuration and verifying gathered packages in its Localization workflow.

Read-only archive inspection uses Unreal’s FLocTextHelper. The native culture is identified from target settings; foreign configured cultures are checked independently. An unavailable archive is distinct from an available archive with no translation for a surface. Missing translations are warnings, not completion blockers. When an archive entry provides source text, mismatch with the current authored source is reported as stale.

For nonempty translations, Unreal’s FTextFormat parser checks pattern syntax. Dialogue Director compares translated placeholder names, case-sensitively, against the source signature already validated against DD’s ordered name/type/source-key declarations. Missing and unknown names are errors; repeated valid names are allowed. The translation does not redefine argument types. No PO/archive parsing, archive mutation, or translation storage is implemented.

Readiness distinguishes Ready, ReadyWithWarnings, Errors, TargetNotConfigured, and TargetSelectionRequired. Structured diagnostics have stable codes and carry optional surface identity, culture, target, related object, and repair availability. The data model is Editor-private and independent of Slate so later UI can consume it without making the interchange panel a PO editor.