← All namespaces

localization

Editor & system Core

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.

← Back to all namespaces