This project aims to translate Uma Musume Pretty Derby through (mainly) Unity asset edits.
Translation progress can be checked on the overview.
This is based on the DMM version of the game. If you can figure out how to run it on other versions, it may (should) work as well, but no support is provided right now.
This tool collection only changes text to translate it and it is my belief this is harmless and unlikely to be an issue. 1
Nonetheless such edits are of course againt cygames/Umamusu TOS so proceed at your own risk!
python src/import.py -O
python src/import.py -O -g <group> -id <id>
Umamusume.exe
and localify’s version.dll
are)If you want to add additional translations through deepl, or contibute your own, see translating.md
All scripts are made to be run from the root dir, i.e: py src/script.py -opt val
Arguments can be given to all and it is recommended you do so, processing the smallest amount of files you’re comfortable with at a time.
For arg info run a script with the -h
arg or just look at the code. Most are very similar.
script | desc |
---|---|
filecopy | Simply copies files from the game dir to the project dir for backup. These will also be used by some other scripts where useful. |
restore-files | Downloads fully fresh files from cygames servers, in case of mess ups |
extract | Loads game data and writes relevant data to a local folder, ready to be translated. Creates Translation Files |
import | The reverse; loads Translation Files and writes them back to game assets for importing into the game |
machinetl + deepl-translator.user.js | In tandem, provide a way to translate Translation Files with deepl. Install the userscript in your browser. Run the python file first, then go to the deepl site and use your userscript manager’s menu to connect and wait until python exits. This userscript setup is temporary (famous last words) |
names | Simply translates names in Translation Files using data from the db-translate project |
textprocess | Processes dialogue text in Translation Files in various ways. Most immediate manual use is adjusting lengths of lines for newline splits. |
common | Not a script. Is used by the other files and holds shared functions and data. |
Most scripts take these arguments, given as -arg <opt>
:
arg | desc |
---|---|
h | Print basic usage information. Use this to see script-specific options |
g | Process specific group |
id | Process specific id |
l | Limit processing to given number of files |
O | extract.py : overwrite files in extract folder import.py : (over)write directly to game dir instead of dat/ |
src | Define umamusu game dir (defaults to the usual location in LocalLow ) |
dst | Define root dir to save output in (defaults to dat/ for import.py and translations/ for extract.py ) |
For g and id see id-structure.md
An example to extract Special Week’s story:
python src/extract.py -g 04 -id 1001
For details run with -h
or check the code.
script | desc |
---|---|
static/manage | Small tool to manage localify’s data for translating static strings. Requires use of umamusume-localify. Note this is a module-script, run as: python -m src.static.manage [-opts] |
To contribute translations, see translating.md (deepl dumps are accepted!)
For dev contributions, open a PR or Issue.
Both are extremely welcome!
UnityPy
The original umamusume-db-translate
umamusume-localify
Unofficial Umamusume Discord server
All the translators
cygames has a relatively good track record in leaving non-cheating, non-damaging tools and users alone in my experience. ↩