Community-maintained Belarusian translations for Vintage Story mods.
- .NET 10.0 SDK (or higher) - for full build pipeline with scripts
- .NET 8.0 SDK - only if building just the DLL without using the scripts
VINTAGE_STORYenvironment variable pointing to game installation
$env:VINTAGE_STORY = "C:\Program Files\Vintagestory"# Test build (no history)
dotnet scripts/mods.cs -r linux-x64 -- build test-20260104 --no-history
# Release build
dotnet scripts/mods.cs -r linux-x64 -- build <version>
# Examples
dotnet scripts/mods.cs -r linux-x64 -- build 1.0.0
dotnet scripts/mods.cs -r linux-x64 -- build 1.2.0-pre.16Note: The -r linux-x64 -- flags are required on Linux systems (especially Fedora 43+).
The pack includes TranslationReloader.dll which:
- Uses
ExecuteOrder() = double.MaxValueto run last - Moves translation pack Origin to end of Origins list via reflection
- Reloads all translations - our files load last and override older versions
This repository is synchronized with Weblate for collaborative translation management:
- Translation files (
mods/*/assets/*/lang/be.json) are edited directly on Weblate - Translators contribute Belarusian translations via the Weblate web interface
- Weblate automatically commits translation changes back to this repository
- Each build includes the latest translations that were committed by Weblate
- Supported mods are defined in
mods.json- this list determines which mods are tracked for translations
Workflow:
dotnet scripts/mods.cs -r linux-x64 -- updatedownloads mods from ModDB and extracts theiren.jsonfiles (English strings)- Weblate detects new English strings and makes them available for translation
- Translators edit Belarusian translations on Weblate
- Weblate commits translation changes directly to this repository
dotnet scripts/mods.cs -r linux-x64 -- build <version>packages allbe.jsonfiles with the mod pack
Technical Detail: The mod includes TranslationReloader.dll which ensures Belarusian translations override any older versions from mods by reordering asset origins and reloading translations after all mods have loaded.
dotnet scripts/mods.cs -r linux-x64 -- fixConverts all JSON files in mods/ folder to LF-only line endings and reformats them with 4-space indentation.
dotnet scripts/mods.cs -r linux-x64 -- updateDownloads and extracts en.json files (English strings) from mods listed in mods.json. Only updates if new versions are detected. Creates/updates:
en.jsonfiles extracted from mods (stored inmods/<mod-name>/assets/*/lang/)mods.json- Updates mod version numbers and last updated datesupdate-log.txt- Summary of updated mods (only created if changes detected)
Note: be.json files are NOT touched by this command - they must be translated separately via Weblate or manually.
dotnet scripts/mods.cs -r linux-x64 -- build <version> [--no-history]Parameters:
<version>- Version string (e.g.,1.0.0,test-20260104)--no-history- Skip saving to build history (optional, recommended for test builds)
Creates/updates:
BelarusianTranslationsPack_v<version>.zip- Packaged mod with all translationschangelog_<version>.txt- Detailed changelogbuild-history.json- Build history tracking (unless--no-historyis used)
Examples:
# Test build
dotnet scripts/mods.cs -r linux-x64 -- build test-20260104 --no-history
# Release build
dotnet scripts/mods.cs -r linux-x64 -- build 1.0.0Contains the list of translator authors credited in the mod pack. Each name on a separate line.
Used by: build command - authors from this file are added to modinfo.json when packaging the mod. If the file doesn't exist or is empty, "Community Translators" is used as default.
Example:
alex_dev
marina
toma
Database of supported mods with their ModDB IDs, versions, and last update dates.
Used by: update command - determines which mods to download from ModDB.
Format:
[
{
"name": "Mod Display Name",
"modid": "moddb_id",
"version": "1.2.3",
"lastUpdated": "2025-11-20"
}
]