Translating

From Wildermyth Wiki
Revision as of 11:49, 8 October 2020 by Nate (talk | contribs)

Translating Wildermyth

Wildermyth is developed in US English and has an official translation for Simplified Chinese. It's possible we'll be able to provide additional official languages in the future, but it might be a while, so we are working on tools to support community translation into other languages.

Let us know what would make your life easier as a translator!

We use UTF-8 for Everything

All files are encoded in UTF-8. You need to set your text editor to UTF-8 when editing properties files if you're using characters outside of the lower 128 (ASCII).

File Structure

All the text in the game is stored in .properties files. Properties files are very simple, it's one "string" (piece of text) to a line. The "key" is first, don't change that. Just change the text after the =

The files are found in the /assets/text/ folder. There are many many files in here, 1 file for each "effect" (event or combat ability) and some very large files for interface, history lines, aspects, and other things. For mods (such as campaigns, for example Age of Ulstryx is a mod) the text is in the mod folder, so, mods/builtIn/villain_ulstryx/assets/text/...

To translate the files, make a copy but put your locale code as the suffix, with underscores, like this:


interface.properties source file (US English)
interface_zh_CN.properties Simplified Chinese
interface_fr French


See the /assets/data/knownLocales.json file for a list of country codes that the game lets players pick. If you want additional ones, contact us and ask. See this list.

Put the translated files right next to the source files. (You may want to make periodic backups of your translated files, too.)

In Game Editors

The Comic Editor is the best way to translate comics, because it offers side-by-side text, real time tag validation, and lets you tweak text box positions as needed. Use the button on the top bar to set your target language:

Useful options when translating

Set the language to the language you're translating to. The dropdown uses the "knownLocales" file mentioned earlier. You can also change "translate mode" to be "from Source" or you can translate from another language, which might be helpful once we have more translations.

The editor also lets you import/export a loc kit, which is just a copy of the game assets with only the text files for one language. This is helpful for collaboration or for exporting to a mod.

Finally, there are some buttons for making effect text bundles. This take all of the effect properties files and bundles them up into one file for translation, but right now I don't recommend using this - Wildermyth has tech to skip untranslated events, but that tech only works if no file exists in that language. Bundling effect text > translating some > unbundling will create files for all the effects, so the game won't know which ones are translated. I might change the button to skip effects with comic panels, and export a list of those, or something like that.

Workflow

We recommend starting with interface.properties. Get the interface showing up correctly. If your target language cannot be rendered in the game's font, please contact us and we'll work out a font set, and add it as an option for you to choose. You'll have to choose "Use Local Fonts" while translating.

After the interface bundle, tackle dynamic, presentation, scenarios, errors, and aspects.

"story" can largely be editing in the "History" tab of the editor and should be done there. "effects" including comics should be edited in the comic editor. The flow for non-comic events is not finished yet but might use the bundling/un-bundling option discussed above.

When translating comics, you'll need to understand how tags work, particularly gender splits, since you may have to write your own depending on your language. The Writer's Guide and Tag Reference goes over how they work. The comic editor is highly recommended because it will give you feedback that your tags are correct, let you see the stories in context, and reroll parties to make sure all variations work. It will also let you adjust individual text box positions and sizes. These adjustments are saved to the .properties file of the event as ~TWEAK lines, you will see them in there. ONLY text boxes can be adjusted this way, actors or other comic details can not.

Delivering Translations

It's easiest to work "in place," in the game folder itself. When you want to share your work, export a loc kit. Another player can import that loc kit the same way. To import/export, the language must be set, and only those files will be copied. It's also possible to bundle your translations up in a mod. If you do that, take all translated text from the "mods" folders and just lump them together in your main assets folder. That whole thing becomes your mod and should work fine. The mod approach allows you to add support for a new langauge by including a "/assets/data/knownLocales.json" file. Th

Translating Mods

To translate a mod, copy it to your install folder, e.g. /mods/user/[mod id or number] Then translate in place. When you're done, coordinate with the mod author to integrate your translations, or release them as your own mod.