๐ Ultra Ren'Py Translator v0.06 โ Full Release Report
๐ Executive Summary
This update is massive. Since v0.02 we've completely rewritten the Ren'Py translation engine, added a full Unity game translator module, integrated and then discarded an offline translation engine, and polished the UI to a professional level. Here's the full breakdown.
โจ NEW FEATURES (v0.03 โ v0.06)
๐ฎ 1. Unity Module โ Complete Unity Game Translator
[BUILT FROM SCRATCH] โ A fully integrated Unity game translator built right into the tool. Not a separate plugin: it's a complete tab inside Ultra Translator.
FeatureDescriptionOne-Click BepInEx + XUnity InstallSingle click installs the BepInEx modding framework (v5.4 for Mono, v6.0 for IL2CPP) and XUnity AutoTranslator v5.5.2Auto Mono/IL2CPP DetectionAutomatically detects Unity game type by analyzing GameAssembly.dll vs Managed/One-Click Full TranslationButton that runs 7 automated phases: install โ extract DLLs โ extract assets โ read dumps โ filter โ translate โ configure.NET String ExtractionBinary parser that reads the #US heap (User Strings) from .NET assemblies to extract ALL string literals from the game codeUnity Asset Extraction4 combined methods: UnityPy (TextAsset/MonoBehaviour), direct binary scan, loose data files (JSON/CSV/TXT), and embedded JSON in assetsHybrid Mode (Online + Offline)Configures XUnity to use pre-generated translations instantly, with live Google Translate fallback for uncaptured textsAnti-Rate-Limit Wave SystemConcurrency semaphore + progressive waves with intelligent cooldown (60s between rounds when Google blocks)"Stop Translation" ButtonControl to abort long Unity translations without crashing the appClean UninstallRemoves BepInEx/, winhttp.dll, doorstop_config.ini and changelog.txtRun GameLaunch the game directly from the tool
๐ 2. Translate from TL (Bridge Mode)
[NEW] โ Allows translating a game using existing translations from another language as a base.
Example: If a game has an English translation in tl/english/, you can use those files as source and translate them to Spanish
Replaces translate identifiers to create an isolated language (XX_ultra)
Preserves the original file structure and translate blocks
Ideal for Japanese games that already have fan-made English translations
๐ 3. Native Ren'Py Hash System
[COMPLETELY REWRITTEN] โ The dialogue translation engine now generates files in the exact format used by Ren'Py internally.
Aspectv0.02v0.06Dialogue translation methodtranslate strings only (old/new)Native translate <lang> <label>_<hash>: blocks + old/new as safety netIdentification hashDidn't existMD5 computed with encode_say_string() replicating the Ren'Py lexerRen'Py 8+ compatibilityPartialComplete โ relative paths fixedNative stub detectionNoYes โ launches the game to generate real engine hashesDialogue file1 file (strings)2 files: renpy_diccionario_global.rpy (UI strings) + renpy_diccionario_dialogos.rpy (hashed dialogues)
โก 4. Google (ULTRA) ๐ Engine
[NEW] โ Third speed tier added to the translation engine.
EngineThreadsBatch SizeDelayGoogle (ULTRA) ๐15 threads4,800 charsNo delayGoogle (Turbo) โก10 threads3,500 charsNo delayGoogle (Stable) ๐ก๏ธ3 threads1,500 chars0.5s between batches
๐ค 5. Magic Font Injection (Fixes Tofu Bug)
[IMPROVED] โ Now a user-toggleable checkbox in settings.
Before: auto-injected only for CJK languages
Now: user decides whether to enable it (checkbox "Magic Font Injection")
Supports more languages: es, pt, it, fr, de, ru, ja, ko, zh-CN, zh-TW, ar, he, bn, hi, ur, vi
Preference is saved across sessions
๐ฆ 6. Expanded Advanced Tools
ToolDescription๐ค Export (.json)Exports all game texts to a human-editable JSON๐ฅ Import (.json)Imports a manually translated JSON and injects it into the game๐ฆ Pack (.rpa)Creates native RPA3 archives from folders (for mod distribution)โ
Verify (.rpy)Scans scripts for unclosed quotes, mismatched brackets, broken braces๐ Translate from TLTranslates using an existing translation as a bridge๐๏ธ Delete TranslationSmart purge of _ultra folders, activators, and temp files
๐ฅ๏ธ 7. UI Improvements
Base64-embedded icons: Ren'Py and Unity icons embedded directly in code (no external file dependencies)
Tab navigation: Sidebar with 4 pages (Home, Tools, Unity, Console)
Modern cards: Card-style design with borders and separators
Bottom status bar: Shows version and current theme
Post-translation Patreon popup: Shown after completing a successful translation
Unity game type indicator: Shows whether it's Mono or IL2CPP
Multi-line dialogue support: Parser for multi-line dialogues (speaker "text that\n continues on the next line")
centered dialogue detection: Correctly translates centered "text" statements
๐ BUGS FIXED (v0.03 โ v0.06)
BugImpactFixDialogues not translated (Ravenous Arc 2, etc.)Critical โ games showed original textComplete engine rewrite with native Ren'Py MD5 hashesencode_say_string not replicatedCritical โ hashes didn't match the engine'sExact implementation of Ren'Py's encode_say_string() and renpy_normalize_text()Double translationMedium โ re-translated existing tl/ folderstl/ excluded from original script scanningIncorrect relative paths for Ren'Py 8+Medium โ stubs didn't match at runtimeNormalized game/xxx.rpy path builderUI strings not capturedMedium โ menu choices stayed in EnglishImproved regex to capture UI strings in non-dialogue linesMulti-line dialogue ignoredMedium โ speakers with text split across 2+ linesNew parser that accumulates lines until closing quote is foundOrphaned folders on deleteLow โ ultra and standard folder weren't cleaned togetherSmart scan of ultra folders + activators in game/Crash on GUI language toggleLow โ exception when switching ES/ENProper dictionary rebuild with ISO selection preservation.rpyc cache prevents re-translationLow โ game used cached version ignoring changesAutomatic .rpyc cleanup after each translation
โ EXPERIMENTAL FEATURES โ ATTEMPTED & DISCARDED
๐งช Argos Translate (Offline NMT Engine) โ DISCARDED
Status: Fully implemented โ Tested โ Completely removed
What was it?
We integrated Argos Translate, a neural machine translation engine (OpenNMT) that worked 100% offline using the user's CPU.
What was built?
Complete "Local NMT (๐ป)" tab with its own sidebar icon
One-click engine installer: Ran pip install argostranslate ctranslate2 in background threads
Language package manager: .argosmodel downloader with source/target language selector
Aggressive integration: Added "Argos Translate (Offline) ๐ป" as an engine option in both Ren'Py and Unity
Speed configuration: 15+ threads with 5000-char batches, no API semaphore (unlimited local speed)
Smart detection: If the user selected Argos without installing it, a handler showed a friendly message
Why was it discarded?
Unacceptable translation quality: Argos quality for Asian languages (Japanese, Chinese, Korean) was far inferior to Google Translate
Package weight: CTranslate2 + language models added ~500MB+ to the distribution size
Installation complexity: Required end-users to install heavy dependencies
Maintenance burden: Duplicated the entire translation logic to support a second engine
PyInstaller/cx_Freeze conflicts: AI models didn't package well
What remains?
Absolutely nothing. The UI tab, installation buttons, engine options, offline translation logic, and argostranslate imports were all removed. The current codebase contains zero references to Argos.
๐ FULL DEVELOPMENT TIMELINE
PhaseVersionKey ChangesGenesisv0.01First prototype. PyInstaller + deep_translator. Ren'Py only. Spanish only. Basic CustomTkinter GUI.Clean Distributionv0.02Migrated to cx_Freeze (0/73 AV detections). Added CJK support + Tofu Fix. Delete button. Anti-rate-limit.Engine Rewritev0.03-v0.04Native MD5 hash system. Bridge Mode (TL). Export/Import JSON. RPA Packer. Syntax Verifier. Multi-line dialogue parser.Unity Modulev0.05Full Unity translator: BepInEx + XUnity. .NET string extraction. Asset scanning (4 methods). One-click translate. Wave system.Argos Experimentv0.05.x๐งช Built complete offline NMT engine with Argos Translate. Fully tested. Discarded due to poor quality.Stable Releasev0.06Complete Argos removal. Dead code cleanup. Google ULTRA mode. UI polish. Final stable build.
Translation Engines:
โ Google (ULTRA) ๐ โ 15 threads, 0 delay, massive batches
โ Google (Turbo) โก โ 10 threads, 0 delay, medium batches
โ Google (Stable) ๐ก๏ธ โ 3 threads, 0.5s delay, conservative batches
โ
Argos Translate (Offline) ๐ปโ Removed
Supported Platforms:
โ Ren'Py โ Full translation (dialogues + UI + menus)
โ Unity (Mono) โ BepInEx 5.4 + XUnity AutoTranslator
โ Unity (IL2CPP) โ BepInEx 6.0 + XUnity AutoTranslator
๐ฏ WHAT'S NEXT (Roadmap)
Improve Unity text extraction with support for more asset formats
Consider integration with new translation engines (DeepL API free?)
Translation cache system to avoid re-translating already processed texts
Possible RPG Maker support in future versions
