Guidelines
- No UI translation without VN translation. But the reverse is possible.
- VN translation should be complete
- If still actives, the authors of the translation should grant permission for their translation to be used
- Assets aren't provided on this repo, only json files
Note
You made a translation and wan't to make it available but don't know how? Please open an issue
How to add a translation
Here is the general structure of a translation folder:
.
└── static/
└── en-mm/
├── game.json
├── lang.json
├── fullscript_en-mm.txt
├── images/
│ └── tachi/
│ └── osiete.webp
└── scenes/
├── s016.txt
├── s017.txt
└── ...
Required for a PR:
en-mm/: folder named with the translation id. Sould be prefixed by two letters for the language, a - and then the author.game.json: contains the translation for game related translation (scenes titlearc.nsa->image/word, credits).lang.json: translation for the web UI. Can also specify the assets to overwrite (more about that at the end of the page).fullscript_en-mm.txt: the source of the translation.
Optional:
images/: two times upscaled images (existing assets have been upscaled using waifu2x).
Not wanted for a PR:
scenes: all translated scenes. They are easily obtained by automatically splitting the full script (make sure it's in UTF-8!) using tools/script-convert.
Make the translation visible by the app
Edit public/static/languages.json and add something like this:
"it-riffour": {
"locale": "it-IT",
"display-name": "Italiano",
"authors": "Riffour",
"dir": "it-riffour",
"last-update": "2024-03-23",
"fallback": "en-mm"
}
locale: the locale of the translation. List of localesdisplay-name: the language name, in its native language.authors: specify the name of the amazing group or person that made the translation. Should be kept short.dir: the name of your translation directory (in latin, non accentuated characters).last-update: change it to refresh the browser cache if needed.fallback: Optional, for latin translation you probably wan't to fallback to a language like english when something is missing, rather than Japanese.
Note: to test a local language you might need to remove the proxy in vite.config.ts. Also clear the languages key in the browser local storage or open in a private tab.
What files should be included in your PR
└── en-mm/
├── game.json
├── lang.json
└── fullscript_en-mm.txt
└── languages.json
You can see that instead of the generated scenes used by the game, we are asking for their source as fullscript_folder-name.txt.
By doing so we are able to update the scenes by ourselves if changes are made on the preprocessing.
Note
Usually the only overwritten image is
tachi/osiete.jpg. Due to the work it requires (masking, upscaling and conversion), you can attach the file in the PR conversation and we will take care of it