An editor for .lcache localization files in Gothic 1 Remake.
This tool works directly with the file in RAM, processing the internal structure of the format, including AES encryption, dialogue trees, and duplicate key synchronization.
If you prefer to run the editor directly from Python source:
This editor requires Python 3.9 or newer (current recommended: 3.12+). Older versions (3.8 or below) will cause crashes.
-
Windows: Download from python.org. During installation, check "Add Python to PATH".
-
macOS: Run the
.pkginstaller. Use thepython3command in terminal. -
Linux:
sudo apt update && sudo apt install python3 python3-pip
Verify the installation:
python --version # or python3 --version
Should print Python 3.9.x or higher.
Make sure you are in the root project folder — the one that contains main.py.
- Windows (fastest): Open the folder, click the address bar, type
cmd, press Enter. - Windows (alternative): Shift + Right-click inside the folder → "Open PowerShell window here".
- macOS/Linux: Open Terminal, type
cd(with a space), drag the project folder into the terminal, press Enter.
pip install PyQt6 pycryptodome
If you get a pip: command not found error, try:
python -m pip install PyQt6 pycryptodome # or python3 -m pip ...
python main.py # or python3 main.py
The editor window will appear.
On startup, point the app to the json folder inside the project directory (if asked). Then click Import, select your .lcache file, and start editing.
If you want to run the editor without Python or share it with others:
-
Install PyInstaller:
pip install pyinstaller
-
Build for your OS:
-
Windows:
pyinstaller --onefile --windowed --add-data "core;core" --add-data "modules;modules" --add-data "json;json" --name "GothicEditor" main.py
-
macOS / Linux (use
:as separator):pyinstaller --onefile --windowed --add-data "core:core" --add-data "modules:modules" --add-data "json:json" --name "GothicEditor" main.py
-
After a few minutes, the standalone executable will appear in the dist folder. You can move it anywhere — it runs completely on its own.
- Full
.lcacheparsing and rebuilding – Handles native structures with correct internal AES encryption. - Dialogue Tree Workspace – Interactive hierarchy view that maps flat translation strings into structured dialogue flows.
- Automated encoding management – Automatically switches to UTF‑16LE if any non‑ASCII characters (Cyrillic, Umlauts) are detected. Pure Latin strings are saved in compact UTF‑8.
- Auto‑sync of translations – Updating a translation automatically changes the text across all related duplicate keys with suffixes (
_new,_newer,_v3,_v2,_patch). - Action history – Centralized undo/redo manager (
Ctrl+Z/Ctrl+Y). - Search and filtering – Full‑text search and quick filters to isolate or hide specific strings.
- Standalone UI Localization – The editor interface can be fully translated into English, Russian, Polish, German, French, or Spanish via the toolbar button.
- Settings retention (
settings.ini) – Remembers the selected theme (including dark and warm modes), layout preferences, and column widths. - Status indication – Displays total keys, translation completion percentage, and unsaved changes tracking.
- Add new text keys or inject entirely new languages into the file.
- Work with games other than Gothic 1 Remake.
- Fix developers' skill issues.
- Prevent you from accidentally breaking your own text or making typos.
- Serve as an example of perfect code.
- Operating System: Windows 10 / Windows 11 (64‑bit) or Linux (64‑bit distributions via Proton/Wine).
- Supports file paths containing Cyrillic characters and spaces.
- When saving, the old file is automatically renamed to
.bakto prevent data loss. - Application errors and crashes are cleanly logged into
error_log.txtnext to the executable.
.
├── main.py # Entry point
├── core/ # Core logic (parsing, encryption, etc.)
├── modules/ # UI modules and plugins
├── json/ # JSON data files (used for UI translation)
├── settings.ini # Auto‑generated user settings
└── error_log.txt # Auto‑generated error log (if any)
Thanks to dh0er for parsing the file format and providing the basic layout.
| Issue | Solution |
|---|---|
ModuleNotFoundError: No module named 'Crypto' |
Run pip install pycryptodome again. |
ModuleNotFoundError: No module named 'PyQt6' |
Run pip install PyQt6 again. |
Error about dialog_context_plugin |
You accidentally moved or deleted the modules folder. It must remain in the same directory alongside main.py. |
| The data table inside the editor is empty | The program doesn't automatically load files on startup. Click Import and manually open your .lcache file. |


