translate-patcher is a terminal UI patcher for embedding external translation dictionaries into visual novel game resources.
The first supported target is MTool-style JSON applied to TyranoScript games packaged as Electron ASAR archives. The goal is simple: Linux/Wine users can patch the game resource package once and play without running MTool or a live text hook.
This repository is in early development. The current MVP can:
- scan the launch folder for
resources/app.asarand*.json - let the user choose specific ASAR and JSON files inside the launch folder's parent
- preview Tyrano scenario count and estimated translation matches
- create a timestamped
.bak - patch
data/scenario/**/*.ksinside the ASAR - write
translate-patcher-report.txt
Image text, video subtitles, Kirikiri, Ren'Py, Unity, and arbitrary binary formats are out of scope for v0.1.
Start the app from a game folder:
translate-patcherThe TUI shows detected files and asks for confirmation before modifying anything. By default it uses a conservative TyranoScript strategy:
- replace plain scenario text
- replace
#character namelines - keep Tyrano tags and resource paths intact
The patch is written in place after a backup is created:
resources/app.asar.YYMMDD-HHMMSS.bak
curl -fsSL https://raw.githubusercontent.com/NihilDigit/translate-patcher/main/install.sh | bashThe installer downloads the latest GitHub Release artifact for the current Linux platform, verifies checksums, and installs translate-patcher to ~/.local/bin.
Supported installer targets:
x86_64-unknown-linux-muslaarch64-unknown-linux-musl
cargo buildRun the TUI:
cargo run -p translate-patcherQuality checks:
cargo fmt --check
cargo clippy -- -D warnings
cargo testtranslate-patcher uses CalVer tags:
vYY.MM.DD
vYY.MM.DD-1
Release binaries are built by GitHub Actions from manually pushed tags.
GPL-3.0-or-later.