A localization editor for StarCraft II maps and mods.
Opens GameStrings.txt,ObjectStrings.txt,TriggerStrings.txt files, translates them into selected languages, and automatically saves them into the correct .SC2Data/LocalizedData directory structure.
Download the latest version from:
https://github.com/vlencmanissc-dotcom/Localization-Editor-SC2-KSP/releases
Download the latest version from GitHub Releases:
https://github.com/vlencmanissc-dotcom/Localization-Editor-SC2-KSP/releases
Run the installer:
LocalizationEditor-Setup-1.1.1exe
After installation, launch the editor normally.
Auto-translation requires LibreTranslate.
Install Docker Desktop for Windows:
https://www.docker.com/products/docker-desktop/
Download the Windows AMD64 version.
During installation:
- enable Use WSL 2 instead of Hyper-V
- leave Windows Containers disabled
After installation:
- Restart your computer
- Start Docker Desktop
- Wait until Docker shows that it is running
Open Release ZIP/docker and run:
start-libretranslate.bat
The batch file starts LibreTranslate for you through Docker Compose. No separate LibreTranslate program installation is required in this mode.
This will start LibreTranslate at:
http://127.0.0.1:5000
On the first start Docker will download:
- LibreTranslate container
- translation models
LibreTranslate will also download the required language models during the first start.
The first start can take a few minutes. That is normal.
Only these languages are loaded:
en, ru, de, es, fr, it, pl, pt, ko, zh, zt
Open in your browser:
http://127.0.0.1:5000/languages
If you see JSON with languages, the translation server is running correctly.
The application expects LibreTranslate at:
http://127.0.0.1:5000
Use this method if you do not want to use Docker or if you want to run LibreTranslate manually.
Use this if you want Docker, but prefer command-line commands instead of the batch file. This is also the preferred manual strategy if you do not want to install LibreTranslate as a local program.
From the project root directory, run:
cd "Release ZIP/docker"
docker compose -f docker-compose.yml up -dTo view the startup logs:
docker compose -f docker-compose.yml logs -f libretranslateWhen the server is ready, the logs will contain a line like:
Listening at: http://[::]:5000
To stop the container later:
docker compose -f docker-compose.yml downDownload JDK 17 or newer from:
Check your Java version:
java -versionDownload Maven from:
After downloading, follow the installation guide:
Check your Maven version:
mvn -vRequired only if you want to use LibreTranslate.
Recommended Python versions: 3.11 or 3.12
Very new Python versions (for example 3.14+) may produce dependency warnings with LibreTranslate.
Download Python from:
https://www.python.org/downloads/
On Windows, make sure to check "Add Python to PATH" during installation.
LibreTranslate requires Microsoft Visual C++ Redistributable (x64).
Download and install:
https://aka.ms/vs/17/release/vc_redist.x64.exe
LibreTranslate requires ONNX Runtime to execute translation models.
Install ONNX Runtime:
python -m pip install onnxruntime==1.24.1If you need to reinstall:
python -m pip uninstall onnxruntime -y
python -m pip install onnxruntime==1.24.1You can verify the installed version with:
python -c "import onnxruntime as ort; print(ort.__version__)"⚠ If you see a warning that the Scripts directory is not on PATH
(for example Python311\Scripts), either add it to PATH
or run libretranslate.exe directly from that folder.
Use this section only if you want to run LibreTranslate without Docker.
If you use docker-compose.yml, skip this section.
python -m pip install --upgrade pip
python -m pip install "wheel==0.45.1"
python -m pip install libretranslate
LibreTranslate currently requires a specific version of requests.
Install the compatible version:
python -m pip install requests==2.31.0Start the LibreTranslate server using the following command:
First start (downloads translation models):
libretranslate --load-only en,ru,de,es,fr,it,pl,pt,ko,zh,zt --update-modelsLater starts:
libretranslate --load-only en,ru,de,es,fr,it,pl,pt,ko,zh,ztIf libretranslate command exists but server still does not become ready,
start via Python module directly (recommended fallback):
python -m libretranslate.main --host 127.0.0.1 --port 5000 --disable-web-uiIf everything is correct, you should see:
Running on http://127.0.0.1:5000
The application expects LibreTranslate running at:
http://127.0.0.1:5000
If LibreTranslate is not running, auto-translation will not work. Test LibreTranslate (Optional) You can test the translation server with:
curl -X POST http://127.0.0.1:5000/translate -H "Content-Type: application/json" -d "{\"q\":\"Hello world\",\"source\":\"en\",\"target\":\"de\"}"Expected output example:
{
"translatedText": "Hallo Welt"
}If startup fails with an error similar to:
FileExistsError ... C:\Users\<user>\.config\argos-translate
then argos-translate path is broken (file exists where directory is expected).
PowerShell fix:
$cfg = "$env:USERPROFILE\.config\argos-translate"
if (Test-Path $cfg -PathType Leaf) { Remove-Item $cfg -Force }
New-Item -ItemType Directory -Path $cfg -Force | Out-NullThen start LibreTranslate again and verify:
http://127.0.0.1:5000/languagesFrom the project root directory (where pom.xml is located), run:
mvn clean javafx:runIf needed:
mvn exec:java -Dexec.mainClass=lv.lenc.AppLauncherFrom the project root:
run-cli.bat check-missing "C:\Maps\MyMap\enUS.SC2Data\LocalizedData\GameStrings.txt"JSON output for automation:
run-cli.bat check-missing "C:\Maps\MyMap\enUS.SC2Data\LocalizedData\GameStrings.txt" --jsonOr directly through PowerShell:
powershell -ExecutionPolicy Bypass -File .\scripts\run-cli.ps1 check-missing "C:\Maps\MyMap\enUS.SC2Data\LocalizedData\GameStrings.txt" --jsonFrom the project root:
mvn -DskipTests packageThis produces an executable CLI jar:
target/Localization_Editor_SC2_KSP-1.1.1-cli.jar
You can run it from any folder (including a different repo):
java -jar C:\git-repo\Localization-Editor-SC2-KSP\target\Localization_Editor_SC2_KSP-1.1.1-cli.jar check-missing "C:\Maps\MyMap\enUS.SC2Data\LocalizedData\GameStrings.txt" --jsonYou can install a command shim so the CLI appears in your terminal command list (PATH),
for example as sc2loc.
From the project root:
powershell -ExecutionPolicy Bypass -File .\scripts\install-cli-command.ps1 -Mode scriptThen run from any folder:
sc2loc check-missing "C:\Maps\MyMap\enUS.SC2Data\LocalizedData\GameStrings.txt" --jsonOptional custom command name:
powershell -ExecutionPolicy Bypass -File .\scripts\install-cli-command.ps1 -CommandName lenc-locYou can build a distributable zip that contains:
LocalizationCli.jarrun-cli.batinstall-cli-command.batinstall-cli-command.ps1
Build it from the project root:
powershell -ExecutionPolicy Bypass -File .\scripts\build-cli-package.ps1This produces:
dist/LocalizationCli-Package.zip
After extracting the zip, install the command with:
install-cli-command.batThen run from any folder:
sc2loc --help
sc2loc check-missing "C:\Maps\MyMap\enUS.SC2Data\LocalizedData\GameStrings.txt" --jsonThe CLI currently reports:
- missing locale files for sibling
.SC2Data/LocalizedDatafolders - missing keys in one language compared with the others
- blank or
null-like values - malformed lines without
= - duplicate keys inside one file
0: no issues found1: warnings or errors found2: usage or input error3: unexpected runtime failure
To compile the project:
mvn clean package