Quickstart
Quickstart
This is the shortest path from a source .locres file to a buildable translation workspace.
Prerequisites:
- Python
3.10or newer - PowerShell
UnrealLocresUnrealPakretocif the target game uses IO Store
1. Extract or obtain the source localization
Use your preferred inspection or extraction tool to obtain the source localization file from the game.
Most commonly, you want something like:
Game.locresGame.json
If you extract with a tool such as FModel, you may end up with a path like:
Output/.../en/Game.locres
That is normal.
The source language does not have to be English if your workflow is based on another existing language.
For example, your extracted source might come from:
Output/.../en/Game.locresOutput/.../fr/Game.locresOutput/.../de/Game.locres
You do not need the extracted file itself to already be named Game.en.locres.
For a default Unreal-style setup in this toolkit, the easiest convention is:
- copy or point that extracted file to a clear local working path such as:
source/Game.en.locressource/Game.en.jsonsource/Game.fr.locressource/Game.fr.jsonsource/Game.de.locressource/Game.de.json
If your project uses a different localization target name, you can reflect that in the config.
2. Put your files in place
Place these in your local UELocKit workspace:
- your source localization file somewhere accessible
Example extracted path:
Output/.../en/Game.locres - your source localization JSON somewhere accessible
Example extracted path:
Output/.../en/Game.json - optionally copy it into
source/Example local working path:source/Game.en.locresExample local working path:source/Game.en.json - the required external tools somewhere on your machine
You do not need to copy every tool into the repo folder if you prefer environment variables or explicit paths.
3. Choose your language
There are two values to think about:
CultureTagShort folder/file tag used by the workspace Example:bg,pl,thCultureCodeFull Unreal culture code used inlocmetaExample:bg-BG,pl-PL,th-TH
You set those in:
config/UELocKit.config.psd1
Start by copying:
config/UELocKit.sample.config.psd1
to:
config/UELocKit.config.psd1
Then edit:
CultureFolderCultureCodeLocalizationTargetNameGameName- tool paths if needed
Important:
LocalizationTargetNameis usually the localization table/file base name, not the name of the game- for many games it should stay
Game - do not change it unless your extracted localization files clearly use a different target name
4. Make the tools discoverable
You have three choices:
- Put the tools in the expected local locations
- Set environment variables
- Pass explicit paths to the scripts
Environment variables supported:
UNREALLOCRES_EXEUNREALPAK_EXERETOC_EXE
Python requirement:
- Python
3.10or newer pythonshould work from a terminal before you continue
UELocKit does not install Python automatically.
5. Initialize the workspace
Use this path if you are starting from scratch and do not already have a translated working file.
If you want the simplest command for Windows users:
& .\tools\init_workspace.ps1
That simple command assumes your local working copy of the source file follows the default convention:
source/Game.en.locres
If you prefer Python directly:
python .\tools\init_workspace.py `
--workspace-root . `
--source-locres .\source\Game.en.locres `
--localization-target Game `
--culture-tag bg
This generates:
working/Game.en.csvworking/Game.bg.csvworking/Game.bg.json
The generated names depend on your target name and culture tag.
If you also have the extracted source JSON, keep it in source/ too.
That gives you an easy way to compare future game updates against your current working translation file.
6. If you already have an existing translation
If you already have a translation, do not treat init_workspace as the only entry point.
Instead, convert or refresh the existing translation into the row-based working format and then keep translating there.
Typical example:
- source files go in
source/ - the existing translated JSON or
.locresis used to generate:working/<target>.<culture>.json- optionally
working/<target>.<culture>.csv
This is the right path when you want to continue an existing translation instead of starting with an empty target.
7. Translate
Edit the generated JSON working file.
That is the main file translators should work in.
The generated CSV file exists for compatibility and import/export workflows, but the preferred editing file is the JSON file.
Example:
working/Game.bg.json
If you prefer to work in CSV, you can.
Example:
working/Game.bg.csv
You can convert between the two formats at any time:
python .\tools\translation_io.py json-to-csv `
--input .\working\Game.bg.json `
--output .\working\Game.bg.csv
python .\tools\translation_io.py csv-to-json `
--input .\working\Game.bg.csv `
--output .\working\Game.bg.json
8. Check for changes after a game update
When a game patch ships, extract the new source Game.json and copy it into source/.
Then compare it against your current working translation file:
python .\tools\check_source_update.py `
--working .\working\Game.bg.json `
--source-json .\source\Game.en.json
This reports:
- added keys
- removed keys
- changed source values
If there are no changes, you can keep translating in the same workspace.
9. Build translated locres
& .\build-locres.ps1 `
-ConfigPath .\config\UELocKit.config.psd1 `
-TranslationFormat json
10. Build the mod package
& .\tools\build-standalone-locmod.ps1 `
-ConfigPath .\config\UELocKit.config.psd1 `
-TranslationFormat json
This generates:
- translated
.locres .locmeta.pak.utoc.ucas
11. About the output package name
The output package name is configurable.
In most cases, the exact filename is not the important part. What matters more is:
- that it is unique
- that it does not collide with another mod package
- that it follows whatever naming convention works best for the target game or community
Depending on the target game, common naming patterns might look like:
MyGame-LocMod_PMyGame-BG_Ppakchunk9999-Localization-Windows_P
The toolkit uses a default such as:
MyUnrealGame-LocMod_P
You can change that in:
config/UELocKit.config.psd1
If a specific game turns out to care about load order, chunk naming, or platform suffix conventions, document that game-specific rule separately and follow it there.
Important note
UELocKit does not provide:
- your game files
- your extracted source localization
- bundled third-party tools
You must supply those yourself.