localization
Run the project's Unreal localization Gather and Compile configs as tracked commandlet jobs.
What it’s for
This namespace runs the two halves of Unreal’s localization pipeline without opening the
Localization Dashboard. localization.gather runs a target’s Gather config, reading
source and assets to build the manifest and archives translators work from;
localization.compile runs its Compile config — the
GenerateTextLocalizationResource step that produces the .locres files
the game loads at runtime. Both take a target name, usually Game, and default to
<target>_Gather.ini or <target>_Compile.ini under
Config/Localization; pass config to select a different ini in that same
directory.
Neither call blocks the editor: each spawns the commandlet as a tracked job and answers
immediately with the resolved config and the log path. Your assistant then polls
system.job_status until the job is terminal and reads back the exit code, an output
tail, and a full UTF-8 log under Saved/PinWright/Localization/ — wait for that before
touching the generated manifests or archives. These two operations are all this namespace does;
for any other commandlet, build, or console command, reach for system instead.
The launcher accepts no extra command-line text, so this surface cannot be turned into a general
process runner. The target is a plain identifier rather than a path, and absolute paths, drive and
UNC prefixes, .. segments, non-ini files, and configs outside
Config/Localization are rejected — as is a config whose manifest name does not match
the requested target, or whose gather steps do not contain the commandlet the operation expects.
Examples
Gather a target’s text
Kick off the Gather commandlet, then poll the job until it reports an exit code.
You: Regather the Game localization target.
call("localization.gather", {target:"Game"})
→ {ticket_id:"job_4c81", config:"Config/Localization/Game_Gather.ini",
logPath:"Saved/PinWright/Localization/Game_Gather.log"}
call("system.job_status", {ticket_id:"job_4c81"})
→ {status:"completed", result:{success:true, exitCode:0}}
Done. Gather finished with exit code 0; the manifest and archives are up to date.
Compile the .locres files
The compile half has the same ticket and evidence shape as gather.
You: Build the runtime localization data for Game.
call("localization.compile", {target:"Game"})
→ {ticket_id:"job_51ab", config:"Config/Localization/Game_Compile.ini",
logPath:"Saved/PinWright/Localization/Game_Compile.log"}
call("system.job_status", {ticket_id:"job_51ab"})
→ {status:"completed", result:{success:true, exitCode:0}}
Done. Compile succeeded; the .locres files are refreshed.
Run a second target with a named config
Name the ini explicitly when a target does not use the default config file.
You: Gather the Editor target using our EditorText config.
call("localization.gather", {target:"Editor",
config:"Config/Localization/EditorText_Gather.ini"})
→ {ticket_id:"job_6d02", config:"Config/Localization/EditorText_Gather.ini",
logPath:"Saved/PinWright/Localization/Editor_Gather.log"}
Done. Editor target gathering under EditorText_Gather.ini; polling the job now.